Å·±¦ÓéÀÖ

Jump to ratings and reviews
Rate this book

Developing Web Applications with Haskell and Yesod

Rate this book
This fast-moving guide introduces web application development with Haskell and Yesod, a potent language/framework combination that supports high-performing applications that are modular, type-safe, and concise. You’ll work with several samples to explore the way Yesod handles widgets, forms, persistence, and RESTful content. You also get an introduction to various Haskell tools to supplement your basic knowledge of the language.

By the time you finish this book, you’ll create a production-quality web application with Yesod’s ready-to-use scaffolding. You’ll also examine several real-world examples, including a blog, a wiki, a JSON web service, and a Sphinx search server.


Build a simple application to learn Yesod’s foundation datatype and Web Application Interface (WAI)
Use Shakespearean template languages for HTML, CSS, and Javascript output
Produce cleaner, more modular code by learning how Yesod monads interact
Implement the yesod-form declarative API to build forms on top of widgets
Learn how Yesod and Haskell store session data and handle persistence
Use techniques to serve an HTML page and a machine-friendly JSON page from the same URL
Create reusable components for several applications with Yesod subsites

294 pages, Paperback

First published January 31, 2012

4 people are currently reading
69 people want to read

About the author

Michael Snoyman

6Ìýbooks7Ìýfollowers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
3 (6%)
4 stars
16 (34%)
3 stars
18 (39%)
2 stars
9 (19%)
1 star
0 (0%)
Displaying 1 - 2 of 2 reviews
Profile Image for Rob.
AuthorÌý2 books428 followers
July 1, 2012
I thought that I might be the target audience for this book, but I was mistaken. In the preface of Developing Web Applications with Haskell and Yesod (O'Reilly, 2012), author Michael Snoyman describes this book as "for" two groups:

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, [1] I'd assumed I'd at least be able to follow along.

Unfortunately, I struggled to follow along. Snoyman is clearly intimate with Yesod, [2] 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 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. [3]

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 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.

----

[1] The final chapter of Bruce Tate's 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.

[2] Considering that he is the framework's principal author, he ought to be.

[3] 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.
Profile Image for Alex.
6 reviews1 follower
June 8, 2014
Fantastic and very complete guide. A joy to read.
Displaying 1 - 2 of 2 reviews

Can't find what you're looking for?

Get help and learn more about the design.