

Results from the State of Clojure, Summer 2010 Survey - cemerick
http://muckandbrass.com/web/display/~cemerick/2010/06/07/Results+from+the+State+of+Clojure%2C+Summer+2010+Survey

======
KirinDave
Myself personally, I didn't find it that surprising that there were a lot of
people interested in web work. I think it's self-selection; people in the web
industry are far more amenable to trying new (also read as: unproven)
technologies or languages.

But at the same time, everyone knows Java's got some really good
infrastructural libraries for web work. Since nearly everyone in the web
sphere works in some sort of dynamic language, it's unsurprising they'd try
Clojure when it'd split the difference between Java's somewhat-famous
libraries and a pure dynamic-typed language like Clojure.

~~~
weavejester
I'm not certain that's the case. There are a lot of Java web frameworks and
libraries, but many of them are orientated around static class-based designs,
which don't translate well to a functional paradigm.

Most of the work I see in Clojure web development tends to keep Java at arm's
length. Deploying to servlet containers is common, but beyond that I haven't
seen an awful lot of overlap.

My experience might be atypical, of course.

~~~
cemerick
Most of the work in Clojure web dev so far (that is also publicized, that is)
is also oriented towards green-field projects, and not integrating with
existing web frameworks. That will change, at which point Clojure will come to
embrace Java warmly when necessary (e.g. witness the addition of annotation
support).

~~~
weavejester
Why do you think it will change? Whilst Clojure has very support for
interfacing with native Java libraries, they are fundamentally two very
different languages.

The number of "green-field" projects are an indication that a web framework
built for a dynamically typed, functional lisp, has a very different structure
to one built for a statically typed object-orientated language like Java. If
anything, I see Clojure web development relying less on native Java libs in
future, not more.

~~~
cemerick
I wasn't saying that idiomatic web development in Clojure will change, just
that whatever pieces are necessary to support deep integration with existing
web frameworks and tools will continue to emerge.

This is a domain-specific problem, not a general one. Simple host library
interop is just the beginning -- annotations are a next step, and I can
imagine being able to emit Java source being a later step (so that one can
deploy applications that include code written in Clojure to environments where
one might not be able to ship _with_ Clojure).

~~~
weavejester
Maybe. My experience of Java web frameworks is that they mostly tend to be
written in very idiomatic Java. So lots of objects and factory classes, XML
configuration for the older frameworks, annotations for the newer ones, that
sort of thing.

It seems to me that the philosophy of most Java frameworks is so different
from that of Clojure, you'd have difficulty reconciling the two. I'm sure you
_could_ write a Clojure interop wrapper, but it seems to me as though there
wouldn't be many advantages to using it.

------
dons
I think the most compelling data here is the languages people came from: Java,
Ruby, Python. And the languages they'd go to Scala, Haskell, Erlang et al.

Clojure as a gateway drug on the JVM for functional programming. Cool stuff.

~~~
francoisdevlin
Gateway drug? With all due respect to Haskell, it's FP heroin.

~~~
dons
Well, from this data it is the first functional language/drug for a
significant proportion of users, so in that sense it is a gateway.

~~~
brehaut
I'm not entirely sure I agree. The data also seems to indicate a significant
chunk of users have moved from other dynamic languages. Perhaps they are the
gateway drug?

I appreciate that clojure is less hardcore about its FP than Haskell, but it
is still 'real' FP rather than the pseudo-fp of mutable-by-default, objects-
first python, ruby, and javascript.

Anecdotally clojure delivers on some of the promises that those three
languages (implicitly?) endorse (I've written python and javascript
professionally for a number of years). I've dabbled in a bunch of FP languages
(Clojure, Haskell, F#) as a result but I've settled in clojure. Haskell has
many qualities that make me want to settle on it, but its strongest features
(amazing static type system, full lazyness) is also the feature that causes me
the most difficulty. In the end clojure provides more of what i was enjoying
about python and js and much of what I like about Haskell but in a less
frustrating way.

(caveat: I don't have a planet-brain - maybe if i did i would have settled on
haskell instead).

When i answered the 'languages id go to question', i was assuming 'if clojure
disappeared today', rather than 'which of these is clojure a stepping stone
too'

------
swannodette
I'm a bit sad that only few people come from a JavaScript background. My
interest in Clojure arises directly from being spoiled by how hackable
JavaScript is. I wanted that same level hackability but with performance and
concurrency and an extra dose sanity. While I still live and breath JavaScript
at work and play, JavaScript is a very crippled language by the very nature of
its design (intended to run single threaded in the browser, subsequent snail's
pace evolution because of this browser dependency). Clojure is a dynamic
language hackers dream on so many levels - the FP stuff is often just icing!

I thoroughly recommend intermediate and advanced JavaScripters to give Clojure
a good long look. You'll be blown away.

------
marketer
Interesting data, but the comment about political polls is a bit misleading.
Political polls are a random sample of a target population and are designed to
avoid biases. This is a voluntary survey with plenty of response bias, so I'd
keep that in mind when drawing conclusions.

~~~
cemerick
I was only referring to the number of respondents, not the overall
methodology. But again, I disavow any expertise or sense when it comes to
actual polling. :-)

------
jkantz
"Poor / incomprehensible error messages and stack traces are far and away the
most common complaint."

I wonder if this is because of the high slime usage. The slime debugger
doesn't play well with java exceptions because the stack gets unwound. JSwat
is the advertised debugging option--wonder how many slime users have tried it.

------
sreque
I respect Clojure as a language, but I'd respect the community a lot more if
they didn't oversell their language and didn't trash on competing languages so
often.

As an example, the only time you hear Clojure mentioned in the Scala community
is when it is being complimented or porting of one of its features to Scala is
being discussed. On the other hand, The only time you hear Scala mentioned in
the Clojure community is when it is being derided as an inferior creation to
the mighty Clojure!

Even in this article, which is supposed to be about the community's response
to Clojure, the author both ignores the fact that Scala is the next most
favorite language of those interviewed and also reserves a nice bullet point
at the end for putting it down.

~~~
cemerick
Scala is discussed frequently in Clojure circles, both positively and
negatively. The former isn't fanboyism, and the latter isn't trashing -- it's
talking about tradeoffs, experiences, and opinions. These things happen on the
internet.

The more non-Java languages gain traction, the better the world is for Clojure
programmers, so I wish the Scala community only the best. That said, I'll
never hesitate to blow Clojure's horn when it has a striking advantage. I
would expect nothing less in return.

Scala _was_ mentioned positively as one of the next most favorite languages. I
certainly wasn't meaning to put down Scala by including that respondent's
(very, very tame IMO) comment.

Overly sensitive, perhaps? :-)

------
snippyhollow
3% of "I remember when #clojure had 6 people in it" => 200 persons answered
this survey.

~~~
cemerick
Not sure how you get that. Check out the original data; 13 people responded "I
remember when #clojure had 6 people in it" (which seems exactly right, taking
timezones into account).

~~~
snippyhollow
Ok, didn't see this "13", and I was assuming they were online h24 (seems ok to
me! :D).

------
joubert
404

~~~
cemerick
Should be only a momentary lapse. The poor thing is only on an m1.small. :-)

~~~
the-kenny
Heh, that's the /.-effect

