
The 2011 State of Clojure Survey is Open - pepijndevos
http://cemerick.com/2011/06/15/the-2011-state-of-clojure-survey-is-open/
======
mark_l_watson
I used Clojure for most of my work in 2010. This year, my biggest customer is
a Java shop. As much as I like Clojure (great community!) I have to say that I
have enjoyed Java's lack of sharp edges this year. Prediction: Clojure will be
much bigger, dev market share, in a few years. It is a young language and
needs a little more time to keep getting better re: exceptions, even better
tools, etc.

One problem that Clojure really does have is that there are other fun/good
languages available. Seriously, with Common Lisp, (J)Ruby, Scala, Python, and
even Java, there is a lot of competition for developers' mindshare.

For me, the bottom line is that designing and writing software is hard work,
and I want to use languages that I am happy using. I started programming in
the mid-1960s (I was just a kid, I am not that old :-) and I keep doing it
because I really enjoy it. Pick languages that make you happy.

------
dmix
> What has kept you from using Clojure more than you do now?

\- Future staffing concerns

This can be killer for a startup.

Although I do very much enjoy clojure and its not any easier to find ruby
hackers these days since the demand is so high.

~~~
va_coder
> What has kept you from using Clojure more than you do now?

I don't need concurrent code. I let the Web server and database handle that.

edit: Clojure is one of those groupthink subjects on HN. Say anything negative
about it and you're destined to get downvoted. I admire Rich Hickey. I read
Stuart's book. I wrote some code in Clojure and I came to a conclusion: for me
it was a waste of time. I heart Ruby and Nginx and databases that handle state
for me. I guess that opinion isn't valued around these parts.

~~~
swannodette
This has to be one of the biggest misconceptions about Clojure. Clojure is
first and foremost about _managing state_ \- the concurrency benefits fall out
of _that_. Most software could benefit from managed state.

EDIT: though I don't agree with your viewpoint (why limit state management to
your db and webserver, don't you want the same guarantees for your app logic
as well?), I did not downvote you.

~~~
thom
I'm using Clojure at my company, and I love it. However, I regularly come back
to this point in arguments with my other Clojure-loving friends.

Clojure is a wonderful way of managing state in a _single JVM_. I think it has
totally cracked this problem, and its model is the model I want to see
everywhere for managing concurrency in a single process.

My problem is that I feel it's solving a problem I don't really have. I'm not
making desktop software, so I just don't care about using a single machine's
cores safely and efficiently. While you claim most software could benefit from
managed state, my assumption is that the majority of people looking at Clojure
today are thinking of it for server software. The issues there immediately
spread beyond a single process, and suddenly all the magic of Clojure stops
being relevant. To scale my app I'm using multiple processes across multiple
machines, and while I'd love something similar to the Clojure model to apply
there, it just doesn't.

I feel like Clojure has popped up at an unfortunate time when desktop apps are
only just thinking seriously about concurrency, but server apps have already
moved beyond the model that works within a single JVM. So I really don't know
what its sweet-spot is.

All that said, I should repeat that I love the language and have found it an
exceedingly productive way to work on the JVM. I just wish it solved even
bigger, cleverer problems than it already does. ;)

~~~
swannodette
Your argument goes both ways. i.e. Erlang while fantastic for distributed
concurrency isn't so hot when you need to solve each portion of the problem in
the shortest amount of time possible on each machine in your cluster utilizing
all the cores you have without having to write a boatload of code.

------
sbt
I wrote that better tool support is important for widespread adoption. I think
widespread adoption takes care of most of the other problems such as staffing
concerns and flaky libraries.

