Linked by snydeq on Mon 17th Oct 2011 17:40 UTC
Permalink for comment 493408
Comment by RareBreed
by RareBreed on Wed 19th Oct 2011 02:54 UTC
Member since:

I'm digging clojure a lot. It's dynamically typed, but you can give type hint metadata to enforce a type (and vastly increase performance). Clojure looks like it's interpreted though it actually generates java bytecode on the fly. If need be, you can AOT compile to interop with Java better, or for a performance gain, or even just to obfuscate your code. And there is major work being done by the core dev team to produce ClojureScript...which generates javascript code.

I know what people are thinking...uggh....lisp...for the JVM (double ugh). I remember back in college trying to understand lisp for some AI programming, and I just couldn't get past all those parens. But clojure is not nearly as overloaded with parens as most lisps, thanks to [] vectors, {} maps, #{} sets, and #"" regexes. Just as once upon a time I thought "white space matters" was stupid in python (I don't even think about it anymore), I think the same way about the syntax for clojure.

The only hard part of clojure is the functional paradigm aspect. But once you wrap your head around closures, recursion or lazy sequences instead of loops, anonymous functions, immutable data, and STM for concurrency instead of'll wonder what the big deal is about OOP. I even started writing my python code in a functional style after learning clojure.

And really, don't let the fact that it's a lisp relative deter you.

Reply Score: 1