Sunday, September 13, 2009

Impressive Language Implementors

(expanded from a tweet)

Slava Pestov just added Advanced Floating Point support to Factor. A very impressive piece of work. As someone who works with large datasets and machine learning algorithms, I've been bitten by weird floating point "features" of many mainstream languages (For those who don't know how important FP is, take a look at "How java Floating Point Hurts Everyone" (warning pdf) - an old paper but a good one, to get some background).

Anyway, this got me to thinking of who (among language implementors) I am most impressed by and I came up with the people working on GHC (I think mostly Simon Peyton Jones, I could be wrong), Slava Pestov (Factor) and Rich Hickey (Clojure). All these implementations have this mind bending quality that if you read the source for a while, you'll *always* learn something new. The Lua implementation has this quality too.

In the second bucket (the "average") come the various Ruby implementations (and Python). yes you can learn stuff by reading the code, but it is mostly "ho hum"Ruby is a weird case. The JRuby and Rubinius implementations in particular, have some clever ideas and have very bright people leading their efforts (as Slava pointed out on Twitter), but the original MRI implementation is so, for lack of beter words, brain dead, that *on the average*, Ruby implementation quality is only so so. (This is probably an unfair characterization but hey I was *tweeting*! You expect a reasoned thesis?!)

If you want to see an undead zombie of a language (in terms of the suckiness of the implementation), look at PHP (the language sucks too but that is another rant).

NB: I am talking of the quality of the *implementation* of languages here, not the design of the language, though the two are often correlated.

1 comment:

rm said...

Hey, we exchanged some emails couple of years back, not that it's relevant. But your post made me think of this month's challenge at work ... well because I've been thinking of it most of today. :)

PS: please don't discuss this with anyone till Friday.