Hacker News new | past | comments | ask | show | jobs | submit login
Results from the State of Clojure, Summer 2010 Survey (muckandbrass.com)
76 points by cemerick on June 8, 2010 | hide | past | favorite | 25 comments



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.


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.


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).


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.


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).


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.


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.


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


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.


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'


The data is not clear about that. If I had taken this survey, my response to the following question would make you think that this was my first functional language, when in fact I have been exploring exotic languages for about five years.

"What language did you use just prior to adopting Clojure – or, if Clojure is not your primary language now, what is that primary language?"

Clojure is my favorite language right now and, if I had taken the survey, I would have answered "Java" because that is what I use for most of the day at my job. However, I have also used almost every language on that pie chart (except for Ada and C#) and would prefer almost any of those over Java (except for C, C++, and C#) if other people were not involved in the choice of my primary language.

Fortunately, I have successfully lobbied to have Clojure included in my workplace. I am very much enjoying the transition away from Java.


"Well, from this data it is the first functional language/drug for a significant proportion of users,"

Where in the data do you get that it is the first functional programming language for any users?

I haven't read the whole thing in detail, but in skimming through it a few times I didn't see anything that referred to any prior experience with FP.


Ah, point taken :)


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.


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.


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. :-)


"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.


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.


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? :-)


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


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).


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


404


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


Heh, that's the /.-effect




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: