It's Haskell
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. Its declarative aspects remind me of Prolog, which I found strangely satisfying when I played with it in college.
- It’s a functional language. The functional style has always appealed to me, something I was reminded of when playing with Scheme last year.
- It feels like it’s growing. I wouldn’t say Lisp and Scheme are dying (if anything, they seem to be in a renaissance), but Haskell is popping up everywhere I look. Maybe I look in weird places. (I note that while the Pragmatics’ “Language of the Year” page doesn’t seem to have been updated since 2002, their 2002 pick was… Haskell.)
- The community seems good. One of the things I did when “researching” (I use that term loosely) languages was stick my head into their respective IRC channels. I found #haskell to be very friendly and active; that’s very appealing when you’re a solo developer trying to sort out confusing new concepts. The Haskell Sequence is a great resource, busy and wide-ranging but not overwhelming.
On the down side, let’s see… well, the logo is pretty ugly.
To help myself get up to speed, I made some Plucker versions of various Haskell documents. In case they’re of use to anyone else:
So, here I go. Knowing how work life goes, this probably will truly be a year-long project, with lots of quiet periods. But I’m excited.
Damien commented on Mon Jan 8 03:01:14 2007:
If you are starting from the basics, my favorites were the wikibook and YAHT:
http://en.wikibooks.org/wiki/Haskell
http://darcs.haskell.org/yaht/yaht.pdf
Paul commented on Mon Jan 8 04:14:13 2007:
I’m most definitely starting from zero. Thanks for the links! When I have more time I may do nightly Plucker builds of those like I do with the Django documentation.
Ricardo commented on Fri Mar 2 15:34:08 2007:
Like you I’m a pythonist looking to learn something from a very different language.
But i think Erlang or Eiffel would have been better choices. Good luck in your new adventure!
Paul commented on Fri Mar 2 15:56:57 2007:
Ricardo – can you say more? The obvious argument for Erlang is the rise of concurrency, and I’ll certainly be considering it in the future. As for Eiffel, I have to admit that the last time I looked at it I had a hard time believing I’d ever really like (as opposed to merely accept) the syntax…
Rhonda Starke commented on Tue Apr 17 13:54:24 2007:
What exactly is your motivation to learn Haskell? The last language I learned was Ruby, because there was this promising and production-ready web framework called Rails.
The Pragmatic Programmer encourages you to learn a new language every year. But why should I take the effort if there is no mid-term benefit for me? I’ve picked up three programming languages in university only to find out that they’re of no relevance in the real world.
Learning a language for the sake of learning it just doesn’t make any sense to me. Is there a web stack written in Haskell? A GUI framework? Anything that could help me getting any real work done?
If it’s only for academic reasons, I claim it’s useless. If you know Lisp, Smalltalk, C, Java and Prolog, you know them all. So why bother?
Paul commented on Tue Apr 17 17:25:13 2007:
Hi Rhonda,
My motivation in learning Haskell (which I’m doing very slowly, I might add) doesn’t have much to do with my day-to-day production tasks. Personally, that’s not where it ends for me. I picked Haskell because, among other reasons, 1) it’s very different from languages I know, 2) it seems to be growing in relevance, and 3) via STM it shines some interesting light on the concurrency problem.
Even if I never use Haskell code in production, I’m pretty confident that taking a run at it will increase my sophistication and depth as a programmer.
And I just like learning stuff.
Rick Taylor commented on Mon Jul 9 00:09:50 2007:
I just started learning Haskell myself, and for much the same reasons as you; there must be something in the air. I’m a mathematician, so it has a special appeal on that basis. I’ve been reading “A Gentle Introduction to Haskell” and really like it; although it would help to have at least looked at something like Scheme first. I ordered Hudak’s book on Haskell from amazon just yesterday, after reading positive reviews (and people saying it was challenging, but I think that’s a good thing).
–Rick Taylor
Paul commented on Wed Jan 16 12:02:48 2008:
Update, one year later: I learned quite a bit, but didn’t get far enough to write any real applications. The time was all well-spent, though. I’m thinking about making Haskell my 2008 language too!
Oisín commented :
I’ve started learning Haskell quite recently too. I’m finding it quite difficult; more so than I expected after learning quite a few languages before (apparently this means I’m really learning something new, which sounds right) - but very enjoyable.
However, I’m a bit perplexed about a rival to Haskell called “Clean” which seems to outperform it timewise in many cases (see the computer language shootout). In many respects it’s very similar, but treats destructive updates differently than Haskell’s monad approach… it also allows strictness annotations in code - perhaps this is a large speed gain.