4 ms·
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://cemeric
by cemerick 14y ago
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-clojure-survey/ 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 it allows me to address narrow problem X". It's a general-purpose language, and increasingly, a multiplatform/multienvironment one as well.
Also, only ~7% of the respondents to last year's survey came from a Lisp. Most come from Java, Ruby, or Python. Make of that what you will re: Clojure's "weirdness".
- edwinnathaniel 14y agoYes 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 immediately take advantage of. I'm sure there are always going to be alpha-nerds who love to try new programming languages out there (especially the hip ones) but when these people are to write Clojure code or to build Clojure tools, they tend to bring their old habit from the previous language, which in turns make their code look like the previous language as opposed to something totally new, probably refreshing, or even have the potential to blow people's mind.
- technomancy 14y ago> 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?"
- cemerick 14y ago(If you watched the O'Reilly live webcast, then give this a try: http://cemerick.com/2012/05/02/starting-clojure/ 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-clojure-enterprise-mindshare-domination-5953926 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%2Chaskell%2CF%23%2Cocaml&l= 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' ;-)
- katox 14y agoReally 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...
- BadassFractal 14y agoOn a sidenote, really enjoying your book so far, Chas. I'm really liking the chapter breakdown and sections like the practicums.