I’m generally a big fan of Steve Yegge’s rants. See this earlier post for links and quotes from some of my favorites. His writings were a significant influence in my decision to seriously look for a new language to learn in 2007 – I even bought Programming Language Pragmatics on his recommendation, piecemeal reading of which has definitely expanded my thinking (as well as dredging up parts of that Compiler Construction course I took back in 1989…).
I did some more Haskell reading over the long weekend, mostly from Yet Another Haskell Tutorial*. There is definitely some challenging stuff (the Monads chapter in A Gentle Introduction to Haskell begins, ‘This section is perhaps less “gentle” than the others…'). Overall, though, the combination of elegance and power and consistency in Haskell is very satisfying. The language has very little to apologize for. I’m not really able to write much code yet, but I’ve started to be able to read it.
Syntactically significant whitespace is one of those debating points frequently raised in unproductive language thrashes involving Python. One persistent implication made by SSW-haters is that it’s a freakish mutation unique to Python. Or, if they’re feeling particularly vicious, they’ll bring up Fortran. Cold comfort. In fact, there are quite a few other languages that have gone down this path. Flipping through a big fat book that I bought because Steve Yegge recommended it, I came across mention of a couple that were new to me.
In my programming resolutions post last week, I mentioned a short list of languages I was considering learning (or attempting to learn, anyway) in 2007. I’ve decided on Haskell. Some of my reasons: It’s different. My “home language” is Python, which is great. But for a growth exercise, different is good. Blog posts bemoaning the weirdness and difficulty of Haskell only goad me on. Ruby is different from Python, but not as different as Haskell.