It's time for gas stations to drop that nine tenths of a cent off their signs.
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.
A little hobby of mine has been quickly scanning over the spam that gets past my filter for random names that coincidentally managed to be someone I recognize. Sometimes I even scan the spam folder itself. I've read many thousands of names over the past few months, but today I have what may be my first hit: Sgt. George Lucas is in desperate need of assistance during his Iraq deployment, presumably something that involves large sums of money being transferred out of my bank account.
Not 100% this is random, but I'm still amused.
Also, I do love the random name algorithms that casually mix ethnicities without any regard for the likelihood of the resulting name. Certainly multiple-ethnicity names exist, I can come up with many people I know off the top of my head, but it seems like there's a botnet using an algorithm where half the names come out like "Hong Patel" or something, and it's just not plausible that half my email comes from names like that. Completely wrong distribution.
|<- Future Posts||Past Posts ->|