Authors Jack Moffitt and Frederic Daoud
Publisher: Pragmatic Bookshelf
Audience: Developers of dynamic web apps
Reviewer: Ian Elliot
The Seven X in Seven Weeks format seems to be attractive. What about covering seven web frameworks - is this a good idea?
The problem is which framework?
If you look at the documentation of any framework then at best you will discover how to do very simple things and perhaps a description of its goals. You don't really discover what the framework can do for you until a lot further down the road and usually well past the point where you could do a reverse and back out.
So the idea of a book that deals with using seven frameworks and devoting a notional 3 days of a week to each one seems just what is needed. However, there are some things you need to be aware of before you get started on this book.
If what you really want is a sort of check list of the well known frameworks to save you time in working out which of them is worth using then this book isn't going to be a great deal of interest to you. Indeed its subtitle should give you a clue - Adventures in Better Web Apps.
So are you ready for this tour de force of frameworks and languages?
Not many readers are going to be proficient enough in all of the languages used to cope without help. Mostly you can see what is going on even if you don't know the language, but you still have to take a lot on trust and this limits your understanding of the framework being explained. I certainly felt that I got more out of the chapters that were in languages I knew reasonably well.
It is also worth mentioning that not all of the frameworks tackle the same problem - i.e. constructing a dynamic website.
Let's take a look at each one.
Sinatra is a Ruby framework that lets you build a website by creating a set of functions that are called in response to URLs - i.e. a REST interface. Along the way you also meet the Mustache templating library and the RSpec testing library. So its not really one framework per week.
AngularJS is the best known framework covered in this book. This is another MVC based framework but it majors on data binding and dependency injection. There is a small detour into the Jasmine testing library but in the main it just deals with AngularJS.
Ring is a Clojure framework that lets you implement HTTP interactions. That is it isn't what you would usually call a web framework, however this said it is interesting. Along the way we make use of the Korma Object Relational Mapping library, Hiccup a data to HTML library, the Compojure routing library and a few more.
Webmachine is another HTTP library only this time written in the Erlang language. To do anything useful we also have to involve Mustache for templating.
Yesod is an MVC framework that is written in Haskell and attempts to do things in a Haskell sort of way. Along the way we meet Template Haskell and a number of DSLs.
Finally we meet Immutant, a Clojure based JBoss based system that makes use of Ring. It isn't a full web framework, but it provides things like message queues, jobs and caching.
Each of the frameworks is discussed in the same general way. An introduction and then three progressive sections outlining how some simple example is implemented. In the main the explanations are good and overall I found the book a fun read, but I doubt that this is going to be every reader's reaction.
It is best described as a meditation, with examples, on what makes a good framework. If this is the sort of thing that interests you or you just want your world view expanded then get this book but don't expect it to solve your real world dilemmas.