Comparing Web Frameworks Book
A publisher recently sent me an e-mail asking some advice. They received a proposal for a book that compares CakePHP, Symfony, Zend, TurboGears, Django, Struts, RoR. Here's a quote from the proposal:
We would like to compare a couple of frameworks and present their advantages and disadvantages in various applications.
Obviously, that kind of manual would be very useful for readers who are starting their 'adventures' with web applications, as it would facilitate their choosing the best framework for their particular application. The manuscript would offer a comparison of the most popular solutions (CakePHP, Symfony, Zend Framework, TurboGears, Django, Struts, Ruby on Rails) and demonstrate the main differences between each.
Therefore, the target audience would mainly be project managers, responsible for deciding on the technologies to be used for in-house projects, as well as less experienced, web application beginners.
Another purpose of the book would be to present 'good practices' in various frameworks, such as code re-factoring, design patterns and application security. From this point of view, it could become a valuable asset for experienced and learner programmers alike.
Since I got a lot of feedback from my tweet on this subject, I figured I'd ask it here.
What do you think of such a book?
Here's my response:
How do PHP books do these days? Of the list of frameworks (CakePHP,
Symfony, Zend Framework, TurboGears, Django, Struts, Ruby on Rails), I
think there's interest in Django and Rails, but not so much the
others. And Struts sucks, so having that as a comparison is obviously
going to make it look bad. I wouldn't buy it, but I'm a Java guy
that's mostly interested in web frameworks that make developing
SOFEA-based applications easier. In my mind, these are Flex and GWT.
The book I'd like to see would cover developing RESTful backends and
SOFEA front-ends. RoR, Grails or Django could be used to develop the
backend and Flex, GWT and X could be for the front-end. In reality,
this is probably a tough book to write b/c things move so fast. If you
decide to do it, I'd keep it short and sweet so you can get it to
market and update it quickly.
I just found your blog as I was looking for some comparison of the different Java web frameworks, and I found quite useful information here (although already old :s). Your posts and slides help a lot when trying to see the differences (even if it's always better to test it and see by yourself).
By the way, you shouldn't spit on PHP. The language itself is quite crappy, but the symfony framework definitely changed the way I saw Php. Web Frameworks gain from competition, whatever the language. Making a book to compare frameworks might be a good idea, but things evolves so quickly... And they should have chosen less Php Frameworks (if one, I would only keep symfony). Or maybe make a Php specific book, and a java specific book. It might sell some units for the next 3 months.
Posted by Piwaï on February 23, 2009 at 05:06 PM MST #
RE: "Struts sucks"... WOW! I'd never thought I'd hear you say it. I guess I am not following your blog enough.
I agree with your comments and I agree that Flex and GWT is a much more compelling comparison.
I also agree about Grails, Django as backends and ok sure if you must Rails as a backend.
(As I learn more about Groovy and Grails... I feel less hatred of Ruby and Rails.)
However, I'd love to see a book that does a comparison of Rails, Django and Grails.
I don't agree with you about PHP.
PHP is more pervasive than most others. In general, I "think" PHP gets a bad rap. (Believe me this is total opinion b/c I know nothing about PHP.)
There are a lot more people out there doing PHP than Ruby.
I don't think a book on SOFEA precludes a book on a more pure "old school" web frameworks like Rails, Django, Grails and whatever the PHP equivalent is.
There are both types of apps being built.
On a side note... Java grew more in one year than three times the total Ruby market so all those Java haters... HA! (That last sentence was completely "non-sequenter" sp?)
Django is used by Google App engine so its compelling on many levels.
Posted by Rick Hightower on February 23, 2009 at 05:20 PM MST #
> RE: "Struts sucks"... WOW! I'd never thought I'd hear you say it. I guess I am not following your blog enough.
Just so there's no confusion: I believe that Struts 1 sucks in comparison to other Java web frameworks (i.e. Spring MVC, Struts 2, Stripes, Tapestry 5). I have no issues with Struts 2. I do think JSF is as cumbersome as Struts 1. Seam is OK, but not as easy as its propaganda tells you it is. ;-)
Posted by Matt Raible on February 23, 2009 at 05:25 PM MST #
Posted by Mike Miller on February 23, 2009 at 05:37 PM MST #
I guess you could dedicate a whole book just talking about PHP frameworks. IMO you have to throw some Grails love in there + concentrate on the most used/rated PHP ones.
I definitely love the idea. When is the beta book coming out? ;)
Posted by JS on February 23, 2009 at 05:44 PM MST #
Sounds like a decent idea for a website, but with the pace that these frameworks change a book would be obsolete by the time it was published.
One only needs to look at Spring in Action, Second Edition, published August, 2007 which covered Spring 2.0. Spring 2.5 final was released November that same year with significant changes...
Posted by Dave Pedowitz on February 23, 2009 at 06:08 PM MST #
Posted by Lars Fischer on February 23, 2009 at 06:37 PM MST #
Posted by Rob Lambert on February 23, 2009 at 06:58 PM MST #
> RE: I believe that Struts 1 sucks in comparison to other Java web frameworks (i.e. Spring MVC, Struts 2, Stripes, Tapestry 5). I have no issues with Struts 2.
I have never really used Struts 2 in anger. I evaluated it a bit. I also played around with WebWork a bit. I liked the ideas behind it. I prefer Spring MVC to Struts 2. Spring MVC makes a lot of sense to me.
RE: I do think JSF is as cumbersome as Struts 1.
It can be and at times I agree. I use JSF in anger a lot. I have a lot of experience with it. Although it much better designed than Struts 1. JSF just did not evolve fast enough. I find the JSF 1.2 RI difficult to debug. (MyFaces gives better error messages). JSF 2 looks promising. I am evaluating JSF 2 and Grails. I really like Facelets, A4J and RichFaces they make JSF bearable.
I kind of gave up on Tapestry after Tapestry 3 and Tapestry 4. The switch over was painful. So much so that I did not even look at Tapestry 5.
I like the ideas behind Grails. I like that it is built on top of Spring MVC, Spring, Spring WebFlow and Hibernate.
Posted by Rick Hightower on February 23, 2009 at 07:11 PM MST #
My two cents, but a book covering most web frameworks across development environments wouldn't be that interesting or useful.
There are a wide range of interesting topics that should get more coverage:
- Flex and Rails via REST (see RUBOSS)
- Building scalable web applications
- Offline/Online web apps
- Web application architectures
But comparing PHP and Erlang isn't one of them.
Posted by Seth Ladd on February 23, 2009 at 07:49 PM MST #
Posted by Dennis on February 23, 2009 at 08:38 PM MST #
I think it's a great idea, although jumping stacks beneath the frameworks (ie, comparing Java, Ruby, and PHP solutions) will present a rat's nest of problems. It would require too much content to cover concepts that are only peripherally related to the actual comparison.
I have heard from a lot of PHP'ers that they would like an in-depth comparison of the major frameworks. I believe such a book will sell well because of both the inherent demand and the fact that it would have most of the major PHP frameworks on the cover. :)
But with all due respect, I'm not sure you're the person to write such a book based on your very opinionated response. Not that you don't have the technical ability or that your opinions are not sound; I just believe that such a book would have to be incredibly even-handed and unopinionated to have significant value.
FWIW.
,Wil
Posted by Wil Sinclair on February 23, 2009 at 09:33 PM MST #
> ... with all due respect, I'm not sure you're the person to write such a book based on your very opinionated response. Not that you don't have the technical ability or that your opinions are not sound; I just believe that such a book would have to be incredibly even-handed and unopinionated to have significant value.
I agree. I definitely wasn't planning on writing this book. According to the publisher, the proposal was "from a group of overqualified Ph.D students".
Posted by Matt Raible on February 23, 2009 at 09:39 PM MST #
It think that comparing web frameworks for different programming languages doesn't make a lot of sense. If I was a Java guy I'd look only at Struts vs Spring, but I wouldn't care about RoR, Django and the other PHP stuff.
And also, pretty obviously since it comes from some guys with just a university background, it totally lacks the one big piece of the pie, which is the Microsoft part.
There are some nice "web frameworks" also in the MS part of the world: ASP.NET WebForm, MonoRails, ASP.NET MVC.
A book that covers web frameworks will not be complete without the MS options.
Posted by Simone Chiaretta on February 24, 2009 at 10:25 PM MST #
Yes
Struts 1 sucks
Grails, which is Java with awesomeness, rocks
Posted by Tom on February 25, 2009 at 04:50 PM MST #
I see so many people saying that if they are using x technology, they would care less about y,z,t ... that is so totally not true for us new kids doing web development.
This is why the world evolves, because we continuously look for better, faster, cleaner, easier ...
In no way I would put a wall in my path to knowledge just because of the feeling of coziness or self-sufficiency ...
Yes, I would love this book, I would love more books like these, one that would take an application as real world as possible(like the one done for symfony framework tutorial) and develop it with different infrastructure(framework,language,etc)
Posted by iongion on February 25, 2009 at 07:20 PM MST #
Posted by Paul Rivers on March 02, 2009 at 11:36 PM MST #