The 'killer' problem domain for clojure is the same as that of any
lisp: the creation of domain-specific languages. There exist a
plethora of problems which are awkward to solve using conventional
programming, and clojure's macros make it easier.

An example is twitter's storm project. It's a real-time processing
project, which partitions your problem space into a set of nodes which
route data between them in 'streams.' There are two most common ways
to interact with it, the clojure dsl and the scala project called
Summingbird. In clojure, it is possible to define the entirety of the
logic that is related to the structure of the system in about 10
lines, plus another 2-3 for each transformation or input/output. In
scala? You'll need to make sure that your Producer[P#Store[Datatype,
Producer], Sink[Producer[Store]] type wrappers line up in *every
single part of your logic*. I exaggerate, but inherent in this
comparison is a truth that both systems need to do the same thing to
interact with the library.  In other languages, the exceptional part
of your domain will taint every line of logic that you seek to write.
In clojure, a library writer can do the heavy lifting for you. They
can silently constrain what you can instruct, for safety and
expressiveness. You don't write clojure, you write the entirely new
language that you've made for your domain.

With macros, it is trivial to make a solution only need to state the
solution in the language of the problem domain, rather than the
language of the programming language. Lisp, and clojure, allow you to
grow the language up to meet you. In such a way, you can achieve high
productivity without sacrificing safety or performance. The killer app
for clojure is whatever you make it out to be.

If you've found that you cannot recommend clojure because there isn't
an amazing library or framework for your problem domain, the fault
lies not with the language but with you.

On Sat, Apr 19, 2014 at 12:15 PM, Paulo Suzart <paulosuz...@gmail.com> wrote:
> Hi all, (warning, this is kinda confusing email)
>
> Been following the list for some time and specially paying attention to what
> could be the killer clojure app as Akka is for Scala.
>
> I keep seeing small libs (I like libs) popping up like ants, but I don't
> believe none of them (alone at least)  can make clojure explode and become
> main technology in a old school /ordinary company.
>
> People say clojure is good for data. But where are the cases? And more
> specifically, where are the frameworks and libs to support it? Are they
> talking about wrappers around java for Hadoop? Sigh...
>
> Pulsar is quite dead, core async isn't clear regarding remoting, and avout?
> And lamina? And aleph? Where are the tools that can make clojure to cover
> from Web to big data and batch?
>
> Luminous,  caribou, etc, are they going to become the next grails? Huumm..
> Will take lot of time. Clojure Script alone will not go any further than the
> current server side.
>
> What made me give up scala was Scalaz, and I hope the "create thousand
> disconnected libs and publish a post with ANN sufix" approach doesn't make
> me give up clojure.
>
> Sorry guys, I've been posting about Clojure since 2009, and still can't see
> it becoming the main technology even being the CTO of the company.
>
> What is the killer app for you? Or how do you think we can make clojure
> supporting apps like Facebook or something big like that?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to