Developing Web Applications with Haskell and Yesod Paperback – May 5 2012
|New from||Used from|
There is a newer edition of this item:
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
Safety-Driven Web Development
About the Author
Michael Snoyman, creator of Yesod, has been programming for about 15 years, using Haskell for the past five. 5. He brings ten years of web development experience in a wide variety of environments as well as time spent creating documentation.
Most Helpful Customer Reviews on Amazon.com (beta)
Also the main point of the book, developing web applications in Yesod, comes across nicely. There are lots of small, complete examples that allow to test features of the framework separately and experiment with them without having to write a whole web application first. Still the transition to a complete app is easy enough and more complete examples leave no questions open.
All in all i would say the author hits a sweet spot. On the one hand the book is fast paced enough to keep you interested in the topic, on the other hand it is deep enough to explain the inner workings behind the scene and give good understanding about the interconnection between the different parts of the framework. Highly recommended if you are interested in web development and Haskell.
«The first group is long time Haskell users--already convinced of the advantages of Haskell--who are looking for a powerful framework for creating web applications. The second is web developers who are either dissatisfied with their existing tools, or are looking to expand their horizons into the functional world.»
I wasn't in the first group, but--gathering some enthusiasm from (arguably much smarter) friends--I thought that I might be in the second group. Succumbing to this peer pressure, and my own curiosity about Haskell, I dove in. I did this despite Snoyman's other assertion in the preface, that the book assumes a basic familiarity with Haskell. Having dabbled with Haskell before,  I'd assumed I'd at least be able to follow along.
Unfortunately, I struggled to follow along. Snoyman is clearly intimate with Yesod,  and quite knowledgeable of Haskell in a general sense, but part of me fears that this hinders the text--that in increasing the expected knowledge of the reader, that it comes at the cost of being accessible to newcomers. On the one hand, it seems unfair to say that Snoyman takes your level of expertise with Haskell for granted; after all, he does warn everyone up front that he is assuming some familiarity with the language. On the other hand, I have approached several web frameworks written in and backed by languages that I am otherwise new to, and have never been as stymied as I was here. As a counter example, when I was new to Grails, I picked up a copy of "Grails in Action" to guide my early foray; at that time, I had never before encountered Grails, had never written any Groovy, and was about as knowledgeable of Java then as I am of Haskell now. And though I found numerous flaws with "Grails in Action", they did get several things right--and two things that they utterly nailed were: (1) the first chapter where they walk you through building a trivial web app in 28 pages and (2) their 32 page language introduction which they aptly named "The Groovy Essentials". There really are no analogs to this in Snoyman's book: there is no trivial starter sample web app (not at the beginning), and the introduction to Haskell runs from page 7 to page 13.
It did not help that I had trouble even getting Haskell and Yesod running on my machine. 
I also did not fully understand what unique value Yesod brought as a web application framework. Snoyman mentions type-safety early and often, but this seemed to me to be an implicit benefit that did not get any clear illustrations. It was almost as if you were expected to already know what this was in fine-grained detail, and as such a demonstration was a foregone conclusion.
This is not to say that there were no compelling features presented and discussed. I saw several intriguing glimmers in the text. The i18n system (of all things) made my eyes light up, as did the high-level design of the widget system (though the syntax itself still screws up my brow). But these are small examples that make up the larger tapestry that I simply did not have the patience or inclination to finish weaving together.
All was not lost, however. Those promising glimmers? They did increase my interest in Haskell. I picked up "Learn You a Haskell for Great Good!: A Beginner's Guide" to read alongside this one, to get more familiar with the language itself while I otherwise dove into Yesod. Haskell itself is compelling, and I'm sure that I'll take a return trip to Yesod when I have a clearer picture of the surrounding landscape.
 The final chapter of Bruce Tate's Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers) deals with Haskell. I did not believe (even naïvely) that this had given me a "command" of Haskell, but I had thought it enough of an introduction to at least get started here.
 Considering that he is the framework's principal author, he ought to be.
 Snoyman does not refer to specific versions of anything, so I found myself more/less forced to experiment. I installed the latest version of the Haskell Platform via Homebrew, and though I got the Cabal package manager running, the Yesod platform itself failed to compile. After going in circles with the compiler error reports, I eventually tried an older version of the Haskell Platform and that seemed to resolve things. Unfortunately, by then I was pretty demoralized and frustrated and a lot of my interest waned.
Full disclosure: I received a copy of this book from O'Reilly in exchange for writing a review.