Developing Web Applications with Haskell and Yesod – #programming #bookreview #in

Developing Web Applications with Haskell and Yesod
Michael Snoyman
(O’Reilly,
paperback, list price $34.99; Kindle edition
, list price $27.99)

Haskell and Yesod? Aren’t they that comedy team playing at the new club downtown?

No, but they do work together. And they can work together very well, as this new book shows.

Haskell is “a powerful, fast, type-safe, functional programming language” used in Web development. It is said to be a great language for “pure computation,” but it’s rated “not so hot” for scripting.

Yesod, on the other hand, is a Haskell web framework for productive development of type-safe, RESTful, high performance web applications.

Some people say you don’t really need to know Haskell if you use Yesod. And others recommend that you do indeed need to understand “what your tools are doing.” And that includes having some experience with Haskell.

Michael Snoyman, who created Yesod, states that his new book “takes as an assumption that you are already familiar with most of the basics of Haskell.” If you are not, he recommends getting some Haskell basics first from two other books: Real World Haskell and Learn You a Haskell for Great Good! (That’s really the title.)

Developing Web Applications with Haskell and Yesod is well written and appropriately illustrated with many code examples. The 280-page book is divided into four parts, including 21 chapters and seven appendices. The first 14 chapters focus on working with short code examples. And the pace ramps up to writing “a real site” starting in Chapter 15.

A few of the key topics covered in the book include:

  • Building a simple application to learn Yesod’s foundation data type and Web Application Interface (WAI).
  • Using Shakespearean template languages for HTML, CSS, and JavaScript output.
  • Learning how Yesod monads interact, so you can produce cleaner, more modular code.
  • Learning how to implement the yesod-form declarative API so you can build forms on top of widgets.
  • How Yesod and Haskell store session data and handle persistence.

Along with showing you how to create “a production-quality web application with Yesod’s ready-to-use scaffolding,” Snoyman’s book also helps you examine several real-world examples, including “a blog, a wiki, a JSON web service, and a Sphinx search server.”

Si Dunn

#