There is a need for a book. I would call it "Haskell for the Working Programmer".
The audience would be, you guessed it, working programmers. Maybe even for working functional programmers. I already grok functional programming. I have been doing it for over a decade now. It is Haskell I'm trying to grok.
Sure, there is Real World Haskell, and it is great. But, it is also getting dated and perhaps the pacing is a bit too iterative for my tastes. That is, they start off with sub-optimal (naive) solutions to problems and then (in later chapters) proceed to make them better and better. Too much reading!
As a working programmer, I tend to learn better by studying and stealing exemplars.
Maybe I want a cookbook. Or, perhaps, what I am really looking for is a book that recognizes that my first goal is to compose a working program. Of course, I want to understand why something works, but maybe, just maybe, I want to see something (anything) work first!
Should I feel ashamed that I still haven't mastered Monads? (Sure, I've used them, debug them and have even constructed a few, but I can't say yet that I have mastered them -- at least not the theory). Can I call myself a Haskell programmer?
Read this: http://www.free-variable.org/2012/08/i-remember-the-time-before-monads/ by Paul Callaghan (you can skip down to the Monads section). It rings true.
In this way, I feel that Haskell is a bit like Perl. You can write lots of good, usable Perl without diving into the deep dark arts of Perl objects (bless them). And, you don't have to write a CPAN module to be a productive Perl programmer. The Perl community has accepted this (or at least seemed to). Do a google for Haskell and you'll find lots of computer science-y (aka research) blogs and perhaps a dozen or so explanations on why Monads are easy, how everyone uses them and then you feel dumb when you can't figure them out.
Haskell needs more Working Programmers. Erlang seems to have snagged them all and it was the Monad that scared them away.
P.S.
If you live in the DC area and want to meet with (at least one) Working Programmer, consider joining the DC Area Haskell Users Group and help make it a reality.
Well put. The pipeline of new methods from academia is very strong in Haskell, and there are lots of very powerful abstractions. But we still need more resources describing how to leverage these abstractions to complete common tasks in production code. We would especially like to build more content along these lines for School of Haskell.
ReplyDelete