Dear Meijer Corporation:
I love you guys. You guys are great. I know it's tradition for Internet "open letters" to be extended complaints, but nah, you're great.
But you know, I do want to air just one tiny grievance. 'Cause this is the Internet and all, and that's what we do here. But rest assured, it's just a tiny little thing. Hardly worthy of note. But I thought I should point it out anyhow.
Learn You a Haskell for Great Good! (A Beginner's Guide) by Miran Lipovača, published by No Starch Press (2011). No Starch was kind enough to send me an advance copy for review.
Haskell books for "real programmers" are still thin on the ground, being limited at the moment to Real World Haskell (2008) and possibly Programming in Haskell (2007). As its introduction states, this book is aimed at existing programmers who are currently fluent in something like Java, C++, or Python, and would like to learn Haskell.
I put my take on the traditional discussion of why you should consider learning Haskell in another blog post, so we can get on with the review here.
The hardest thing about learning Haskell with no previous functional experience is bootstrapping the strong foundation that you've long since taken for granted in your imperative language. If you don't have this strong grasp of the fundamentals, then every line of code is an invitation to get stuck on some subtle issue, and you'll never have the fluency that great work requires until you have that foundation.
This book is the best way I know to obtain the Haskell foundation you need for fluency.
No Starch Press asked me to write a review of the new Haskell book, Learn You a Haskell for Great Good!. I started to write a section about myself and my view of Haskell for context, and realized that it really needed to be its own post as it grew to a length where it was self-indulgent to make it part of the review. But it fits as its own post nicely.
I have always had a romantic attraction to the "could have been"s, the aesthetics that die early or fail to become popular but feel like in an alternate universe just next door they could have been wildly successful. Beethoven's Ninth Symphony has always struck me like this; even as the Classical music period gave way into the Romantic period and harmonies get ever wilder until they run entirely off the rails in the twentieth century, it always felt to me like the Ninth could have been the foundation of a different aesthetic than the one we actually got. (A matter of opinion, of course.) It's a fully-formed masterpiece from the could-have-been.
I like to watch the "How the Movie Was Made" documentaries for movies from the Star Wars era up to the late ninties, because I love to see all the dead special effects techniques; the wonderful models, the animatronics, all the clever tricks they play, all interesting in exactly the same way that watching the documentaries for a 2010 movie are very uninteresting, seeing as how they all boil down to "And then we used a computer". I wonder what movies we'd be seeing if somehow computers were impractical for special effects and these techniques continued to be refined and honed.
And there's a smattering of other such things I enjoy. In the movie domain, many of them end up becoming what we call "cult classics", movies that may be awesome or may be fundamentally terrible but are above all else different. Buckaroo Bonzai, the David Lynch version of Dune, and, as telegraphed by my title, Tron.