Live data from Hacker News

2012 State of Clojure survey

cemerick.com

11–20 of 43 posts

Re: 2012 State of Clojure survey

#11

Earlier quoted context omitted.

Hi Mark, I'm interested to see Clojure in the LoB type of application. Yes, LoB is boring, but I'd like to see some comparison between the model-heavy/oop-heavy vs Clojure. Would be nice if the apps show internationalization and some way to handle Time and Money.

Time and Money are handled exactly the same as in Java.

As in using Joda-Time, Joda-Money (or JDK Money)?

Would there be any other way to represent them in Clojure? (i.e.: the more Clojure-way as opposed to use JDK classes?)

Re: 2012 State of Clojure survey

#12

i really like clojure. for me, it's not about the lisp - it may sound crazy, but it's a better python. lazy sequences are nicer to use than generators, and i don't need to worry so much about mutation. seriously. that's how i am describing it to co-workers: a better python. that should have been scheme, i guess, but it lacked the lazy sequences to get over the "ewww parens" hill. if you're a python user that's starti…

I thought numpy was python's killer app

Re: 2012 State of Clojure survey

#13
post #3

Earlier quoted context omitted.

Some of us have been "marketing" Clojure for a number of years now. :-) The results from the last two years of the survey (e.g. 2011's are here: http://cemerick.com/2011/07/11/results-of-the-2011-state-of-... ) might be illuminating for you. Clojure has a ton of compelling use cases, but it's stubbornly not going to fit into the shoebox of a single domain. Thus, it's going to be hard to say, "Clojure is great because…

Yes Chas, you're definitely no stranger in the Clojure community :) (I watched your O'reilly webcast btw). I'm not saying that Clojure should address a narrow problem but if we look back at the history of Java, it offers a few "real" improvement over C++ such as garbage collection, nice standard library, and the promise of WORA (albeit lots of hiccups here and there). By real I mean something that people can see and…

> if we look back at the history of Java, it offers a few "real" improvement over C++ such as garbage collection

Perhaps the problem is that it's hard to explain referential transparency, or that the problems caused by the lack of referential transparency are less obvious than those caused by the lack of GC. I mean, I've never heard of someone reading through "Out of the Tarpit" and then saying, "why bother with something like Clojure?"

Re: 2012 State of Clojure survey

#14

Earlier quoted context omitted.

Time and Money are handled exactly the same as in Java.

As in using Joda-Time, Joda-Money (or JDK Money)? Would there be any other way to represent them in Clojure? (i.e.: the more Clojure-way as opposed to use JDK classes?)

Joda Time is actually a great example of a library letting you work in terms of values instead of the mutable object disaster that is java.util.Date; it just happens to be implemented in Java itself.

If you can imagine the same benefits of working with stable values applied across the board to all your built-in data structures, that might help.

Re: 2012 State of Clojure survey

#15
post #3

Somehow I get the feeling that the Clojure community is in the "marketing" phase of the language. I'm starting to see many Clojure threads popping up HN lately. InfoQ.com also increasingly added Clojure presentations/articles lately. It's all good, a little bit of competition between languages is healthy. Having said that, I believe it is hard for Clojure community to convert/invite people with what you guys have don…

Some of us have been "marketing" Clojure for a number of years now. :-) The results from the last two years of the survey (e.g. 2011's are here: http://cemerick.com/2011/07/11/results-of-the-2011-state-of-... ) might be illuminating for you. Clojure has a ton of compelling use cases, but it's stubbornly not going to fit into the shoebox of a single domain. Thus, it's going to be hard to say, "Clojure is great because…

Really nice summary, Chas ;). I hope I haven't spoiled the statistics by filling in "just started" - the same response as the last year.

I guess some of us are start over all the time. But at least this time I've read through a half of Clojure in Action and going through 4clojure exercises to "finally get started".

This time using instarepl by Chris instead of LaClojure or Emacs/Slime (where just a tiny subset works for me).

And it's fun! If only errors were not such a drag. I guess complains from 2011 will repeat on those...

Re: 2012 State of Clojure survey

#16

Earlier quoted context omitted.

As in using Joda-Time, Joda-Money (or JDK Money)? Would there be any other way to represent them in Clojure? (i.e.: the more Clojure-way as opposed to use JDK classes?)

Joda Time is actually a great example of a library letting you work in terms of values instead of the mutable object disaster that is java.util.Date; it just happens to be implemented in Java itself. If you can imagine the same benefits of working with stable values applied across the board to all your built-in data structures, that might help.

Is mixing Java classes in Clojure okay? or to some degree it is acceptable but there are gotchas or the do's and don'ts?

Hey, I checked your website just for fun and it says there you can speak Indonesian, awesome :).

Re: 2012 State of Clojure survey

#17
It is said that programming language is just a tool, so you shouldn't stick to any particular language, and be flexible. Paradoxically this is the reason why I want to stick to particular modern language, such as Clojure. As programming language is just a tool, I don't want to suffer from a tool originated problem, and if possible, I don't want to spend a lot of time to learn several languages. Almost certainly, Clojure is one of the most modern languages, and it let me focus on solving problem.

Re: 2012 State of Clojure survey

#18
post #4

Earlier quoted context omitted.

It's true that Clojure is "weird" because it's a different paradigm. It's not just a different language like Ruby was, it's a different family of languages. It's going to be strange if you aren't already familiar with Lisps and/or functional programming. To some extent, I don't think any "killer app" is going to change that, although it certainly wouldn't hurt. The concurrency features are pretty compelling in that s…

Yes, that seems to be the case: "you need to learn it to believe it". And I hope people take their time to learn it because there seems to be a few articles out there with the message of "I picked up Clojure in a few weeks and re-wrote critical piece of my software in 2 days and it works super-scale". Maybe that's the power of Clojure? I really think that it will take a few years before a select few (persistent users…

It's mostly a mental barrier. Clojure isn't inherently hard, at all, it's just different. Once you get the hang of it, you can start reaping the benefits fairly quickly.

Unfortunately, most people judge difficulty in terms of familiarity, so the strangeness is off-putting even if it wouldn't be that hard for them to learn.

Re: 2012 State of Clojure survey

#19
post #3

Earlier quoted context omitted.

Some of us have been "marketing" Clojure for a number of years now. :-) The results from the last two years of the survey (e.g. 2011's are here: http://cemerick.com/2011/07/11/results-of-the-2011-state-of-... ) might be illuminating for you. Clojure has a ton of compelling use cases, but it's stubbornly not going to fit into the shoebox of a single domain. Thus, it's going to be hard to say, "Clojure is great because…

Yes Chas, you're definitely no stranger in the Clojure community :) (I watched your O'reilly webcast btw). I'm not saying that Clojure should address a narrow problem but if we look back at the history of Java, it offers a few "real" improvement over C++ such as garbage collection, nice standard library, and the promise of WORA (albeit lots of hiccups here and there). By real I mean something that people can see and…

(If you watched the O'Reilly live webcast, then give this a try: http://cemerick.com/2012/05/02/starting-clojure/)

Riffing on what technomancy said nearby, a lot of the issues that Clojure addresses are so taken for granted in most of the broader software development world, that it can be challenging to wrap up its benefits into a tasty, easily digestable nugget comparable to "Java gets rid of malloc and pointers" (sorta). Some have taken some whacks at doing just this, including Paul DeGrandis' talk you linked to already, as well as "Neal Ford's master plan for Clojure enterprise mindshare domination": http://blip.tv/clojure/neal-ford-neal-s-master-plan-for-cloj...

That said, the benefits of immutability and pure functions are generally obvious to any reasonably-capable programmer (my personal bias shone forth) given 10 minutes in front of a whiteboard. Can we get the, say, 10 million Java developers to sit still long enough for that? No, probably not. Maybe a tenth of them eventually, maybe. And, if a bunch of them head over to Scala because they like the look of {{{}}} instead of ((())), so be it.

A more interesting question to me lately is, what is the objective of language evangelism? Let's set aside any notion that Clojure will be "the next Java", or even achieve the same penetration as Python or Ruby. For those of us that use the language, none of those goals are particularly important. "How many developers use language X" used to be a critical question when the language you used largely delimited the reach of your eventual application/system/whatever; that is hardly the case anymore. I can write my server side in literally anything, and transpiling to JavaScript or C for client side as necessary is either within reach, or a solved problem depending on your preferred language.

So, what should be the objective? Having a large enough pool of talent to meet business objectives is the only thing I can think of that is an actual potential blocker. I know lots of people that know Clojure that would like to work in Clojure, and there are more people like that every day. Seems like the vector is trending positive; we only need to make sure it stays that way.

(This leaves out the enterprise guys to a certain degree, but that's largely due only to their [and their managers'] self-inflicted risk profile.)

Finally, I leave you with this:

http://www.indeed.com/jobanalytics/jobtrends?q=clojure%2Chas...

Note that those are absolute trendlines, not growth. You can very reasonably say that Clojure is the most in-demand functional programming language. (…for some definition of 'functional programming language' ;-)

Re: 2012 State of Clojure survey

#20
post #12

i really like clojure. for me, it's not about the lisp - it may sound crazy, but it's a better python. lazy sequences are nicer to use than generators, and i don't need to worry so much about mutation. seriously. that's how i am describing it to co-workers: a better python. that should have been scheme, i guess, but it lacked the lazy sequences to get over the "ewww parens" hill. if you're a python user that's starti…

I thought numpy was python's killer app

I would say Python's killer app is its massive library -- the size and quality has few rivals. No doubt Python's readability and approachability contributed to this.
Post reply on HN