I've been "all-in" on clojure for about 6 months now, spending every free 
moment learning and working in it.  Paul Graham's writings played a big part in 
my choice to invest in a lisp, so this is an interesting question.

After some reflection, I can say "yes", clojure has had a substantial impact on 
my productivity.  This is true even while factoring in the overhead of learning 
the language, and should only improve as I get more experience.

I attribute this productivity boost to 2 things (for me at least, ymmv).  First 
is the malleable nature of the language, combined with the rapid feedback loop. 
 The comparison I like to use is that working in java (my main language before) 
is like working with concrete - you have a limited amount of time early in the 
project to get things right before it "sets", after which it becomes very 
difficult to make large changes.  This leads to lots of incidental complexity 
and over-engineering up front (the dreaded FactoryManagerFactories).

Clojure, on the other hand, is like working with clay, where you mold it into 
shape using composable functions operating over simple data structures like 
maps.  You can always harden it later using records, type hints, and creating 
dsls.  But those decisions can be made late, if at all.

The second factor is the overriding simplicity of the language.  My java 
friends look at me like I'm crazy when I say that, but it really is true.  
Sure, there's syntax and idiomatic usage that has to be learned (as for any new 
language), but once you get past that, you see that everything is built on a 
handful of primitive concepts and consistent abstractions.  Understanding these 
core concepts makes any problem more approachable, and any solution (from a 
library, another developer, etc.) understandable by breaking it down in terms 
of these core concepts/abstractions.  It's hard to overstate how empowering 
this is.

Underlying both these things is the whole idea of bottom-up programming, which 
of course Graham is a big proponent of.  And honestly, I think I've always been 
more comfortable thinking about things that way, I just never had the tools 
before to work that way.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to