Published on 08 April 2012

Ok, so, once again, I'm new to Clojure. Not only that, I am new to computational linguistics, and to coding in general. I have some background messing around with Python - I've implemented a lot of programs, some of them non-trivial (meaning thousands of lines of poor code long). My undergraduate was in Linguistics, where when I once asked a professor if I should apply to a degree in computational linguistics, I found the shocked and almost appaled answer "I didn't know you leant that way." But, half a year, lots of Python and even some attempts at Java, Ruby, Javascript, Luna, and who knows what else later, here I am.

If you haven't read them yet, Paul Graham's essays on what it means to use Lisp are excellent. Lisp is arguably the most powerful language. It is based on math, and math, as we all know, doesn't age. (What this means, I have yet to really understand, but this is a learning process over here, so help me out.) Clojure is a new dialect of Lisp. Ok, I can get all that. So, what's different about clojure besides the pretty rainbow brackets, and an annoyingly long process of setting it up (Clojure, clojars, leiningen, VimClojure with SLIME - you name it, I've fought it, all the way down to things like Mercurial.)

Well, right off of the bat, the syntax is pretty nifty. Take (+ 3 5 5) - that's multiple arguments, going fine. The syntax, of course, doesn't matter so much, but it's easy to appreciate how much easier this is than python's 3 + 5 + 5

Some more thoughts that should be sorted:

  • Something about brackets being useful
  • Anonymous functions is nice
  • Running on the JVM - what does this really mean? Library support? Isn't making a library set then kind of perpendicular to the point of using Clojure?


Tagged: