Seven Web Frameworks in Seven Weeks

Authors Jack Moffitt and Frederic Daoud
Publisher: Pragmatic Bookshelf
Pages: 302

ISBN: 9781937785635
Kindle: B00I800FE0

Audience: Developers of dynamic web apps
Rating: 3.5
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?

Web frameworks are a huge problem at the moment. You could implement everything yourself starting with just raw HTML/CSS and JavaScript. This would be a lot of work but at least you wouldn't have to learn how to use a framework and you wouldn't be at its mercy in the future. In most cases it makes good sense to pick a framework, learn how to use it and hope it continues into the future.

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. 




The main objection that you might have is that the frameworks covered aren't the ones that you might have heard of. In this sense the selected frameworks are a little obscure - and don't expect the languages used to be restricted to PHP or JavaScript. The authors justify this odd choice of frameworks by explaining that they are trying to show you the best that frameworks can be. That is, these might not be the top frameworks of today but they all embody some important principle which is worth knowing about. 

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.

The frameworks covered are:  Sinatra, CanJS, AngularJS, Ring, Webmachine, Yesod, Immutant. Yes I told you these aren't the best known frameworks. You should, however, know AngularJS, one of the most popular of the JavaScript frameworks and perhaps Sinatra, which is popular with Ruby programmers. 

Of the other frameworks CanJS, is as you might guess JavaScript based, Ring uses Clojure, Webmachine uses Erlang, Yesod uses Haskell and Immutant is Clojure based. As you can see the range of languages goes from the commonplace to the esoteric - and I'm not saying which is which. 

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. 

CanJS makes it easy to implement an MVC archecture in JavaScript using listener objects that take care of updating things. You also have to use jQuery to do the core coding but the account is mostly focused on CanJS. 

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.

The range of languages used and the range of frameworks and additional libraries used will go well beyond the experience of the average JavaScript web developer and into territories they probably don't want, and mostly don't need, to know about.

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. 


Machine Learning For Dummies, 2e (Wiley)

Author: John Paul Mueller
Publisher: For Dummies
Date: January 2021
Pages: 464
ISBN: 978-1119724018
Print: 1119724015
Kindle: B08SZHJGJW
Audience: General, but not too dumb
Rating: 4
Reviewer: Mike James
Dummies probably need machine learning to cope...

Clean Craftsmanship

Author: Robert C. Martin
Publisher: Addison-Wesley
Date: November 2021
Pages: 416
ISBN: 978-0136915713
Print: 013691571X
Audience: General
Rating: 4
Reviewer: Mike James
Well, I'm a clean craftsman - are you?

More Reviews




Last Updated ( Sunday, 01 February 2015 )