Archive for October, 2008
Actually, it’s not really news anymore, as she was born on Sep 30… but I had not gotten around to blogging about it yet. :-)
Bonus points if you can figure out what her relation is to me. :D
When you screw up your .emacs file, there is something delightfully perverted in having to type
in order to set things straight… :-)
(This in spite of its name, which is positively horrible, in my opinion. YMMV. Anyway, now that that is out of the way…)
Besides Nu and F#, there were many other, lesser candidates, not all of them functional or Lisp-like (the list included Io, Prolog and Perl (!), for example). After I investigated the top three, I figured I had found the language I wanted, and decided not to look any further.
Nu looks like a Lisp, but I don’t think it’s actually very Lispy or functional, which was a bit of a drawback. The fact that it’s tied to OS X doesn’t really bother me, since Macs are all I have at the moment anyway.
F# is of course tied to .NET. There’s Mono, but I didn’t get the impression that it works all that well on OS X. Maybe that notion is wrong, but at that point I didn’t want to spend too much time delving into each language.
Clojure, then, looked very impressive. Especially the videos are enlightening. While not perfect, the language nimbly sidesteps many of the problems that existing Lisps (like Common Lisp and Scheme) seem to have. (For example, with macros, data structures, sequences, lazy evaluation, nesting levels in let and cond, list destructuring, etc… but really there’s too many to list here… watch the videos instead.)
It needs the JVM, but that runs pretty much everywhere nowadays (unlike .NET or Objective-C), and as a bonus it comes preinstalled on OS X. This has the tremendous benefit that programmers have access to the vast Java libraries. It’s easy to integrate this, and you can use several styles to call Java code (e.g. a functional style, a more object-oriented style, etc).
As a result, a pragmatic Lisp + Java libraries equals crazy delicious. :-)
Or so I hope, anyway. I probably won’t be able to use it much on my clamshell, since it takes 17 seconds to start up… but then again, it’s a G3/466. :-) Fortunately I also have a more recent MacBook where starting the REPL only takes 1.7 seconds. ^_^’ At the moment, I am trying to make Emacs behave well when editing Clojure code. (Autoindent doesn’t seem to work, what’s up with that?)
More later. It’s time to inhale the manual now…
For 2009, I am going to study a new language again. (This doesn’t mean that I will abandon Chicken/Scheme development completely, by the way.)
While y’all ponder which language this is, I’ll go prepare a blog post in which I will explain my decision. ^_^
“Even in an introductory text I got the sense that the authors were trying to make themselves look smart at their readers’ expense. A page into a new chapter and they’d whip out a completely new symbol (a crippled-looking M, or a Q doubled-over in agony), surround it with a constellation of superscripts and italic subscripts, then incant “… it is therefore obvious that…” and be off into the galactic void, sky-writing with half of the goddamn Greek and Egyptian alphabets. I felt stuck in mud, dumb as a sack of bricks, and seriously doubting that given the authors unsupervised access to TeX was a good idea.”