

Ask HN: Why are there more clojure jobs than Haskell? - sharmi

Hi,
   My background is in C, Java and Python. Of late, I wanted to learn a functional language and have started learning Haskell. But haskell being what it is and my limited time, it would be quite some time before I can be confident in it.  I have been looking at the 'Ask HN: Who is Hiring' http://news.ycombinator.com/item?id=3300290 nad find that there are more jobs pertaining to clojure than haskell.  I'm seeing this pattern often in the industry, though google trends suggests otherwise http://www.google.com/trends?q=clojure%2C+haskell&#38;ctab=0&#38;geo=all&#38;date=all&#38;sort=1 .  For a mature language like Haskell, one would expect a more widespread adoption.  Why is it not so ?
======
madhouse
As far as I see (with my limited Haskell and Clojure knowledge), Haskell,
being pure functional, has a much steeper learning curve than Clojure, which
while mostly functional, focuses a bit more on being practical.

Furthermore, Clojure can use the already existing Java libraries, while in
Haskell's case, the number of available libraries is considerably smaller.
Clojure plays nicely with Java, so you can mix and match Clojure developers
with Java devs, and they won't go for each other's throat.

Haskell doesn't play all that well with any other language.

~~~
sharmi
Thank you madhouse, I suppose then it makes sense to learn both.

------
malandrew
Closure, being basically LISP, has the benefits of S-expressions.
S-expressions are a super powerful language feature when it comes to natural
language processing. Given how much is being done around NLP these days, it's
natural for there to be a lot going on work-wise with Clojure.

I also agree with Madhouse's explanation of the steeper learning curve. The
biggest problem with the steep learning curve is that there are far fewer
examples in the wild of solving business problems with Haskell. The library
support that Madhouse mentioned also compounds this problem.

~~~
malandrew
I would appreciate if the person who voted this down could at least explain
why this answer deserved it.

------
adrusi
clojure has more jobs because it can work with existing java projects out of
the box, with no need to refactor at all (to make it work, you would probably
want to organize things in a more clojure-friendly way). Haskell has
remarkable interop with C when you consider how fundamentally different they
are, but you can't just plug it into an old C project.

Java is everywhere, if a company is switching from java to a functional
language, it's cheaper to make an organic transition using clojure,
reimplementing when it seems appropriate, than it is to use Haskell, where no
code could be left unchanged.

There are of course practical benefits of haskell to employers. It's faster,
it tends to be easier to make major extensions to a haskell project without
refactoring than in other languages, it's easier to reason about the code so
new employees will be confident sooner, Haskell protects against subtle bugs
that might not be noticed during debugging, etc.

Also, just because Haskell has been around longer than clojure, it was
considered an exclusively academic language until only a few years before
clojure came out.

