Archive for October, 2008
In other news...
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
Ambieditrous
When you screw up your .emacs file, there is something delightfully perverted in having to type
vim ~/.emacs
in order to set things straight... :-)
The road ahead (2)
Nobody was fooled: The language I decided on for 2009 is Clojure.
(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...
The road ahead (1)
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.)
The major candidates on my list were Nu, F# and Clojure. Turns out that one of them impressed me much more than the others... So much so, that I don't want to wait until 2009. :-)
While y'all ponder which language this is, I'll go prepare a blog post in which I will explain my decision. ^_^


