« The Old Fashioned | Main

February 05, 2006

Web frameworks reloaded. Just use...

Last year I was dismal about the state of web frameworks, or more accurately the sheer number of them. Things are looking up. I'm down to four stacks!

Plone

Powered by Plone..

Ok, so Plone strictly isn't a web framework. But it does a bunch of things that you often end up needing from a framework. User management, document templates, rich editing, i18n, search, live editing, extensibility, portlets, wiki, forum, accessibility, skinning. Stuff like that. All there. In terms of an ootb experience in getting something useful done with content, Plone is unmatched. Plone's actual framework is Zope2 (via a layer called the CMF), which is complicated and not always liked by developers (best explained here by Jason Huggins), but Plone itself is focused on users, not developers. Developers have to suck it up, especially developers who are used to working with database backed sites, ie where the answer to everything is an RDBMS. So be prepared to roll up your sleeves if you want to integrate Plone with another system.

StrutsTi/Struts

Powered by Struts..

update: turned this one around; StrutsTi means that WebWork becomes a safe bet too.

The recent unification of WebWork and Struts roadmaps surprised me, along with a lot of others. Up to then WebWork and Struts were competing frameworks, where WebWork won the technical battle, and Struts the adoption one. What organisations like about Struts isn't technical, it's social. Most enterprise Java devs know their way around Struts, thus it's less of risk for an enterprise to commit to it. Aside from some things I just don't like about Struts, it was starting to show its age, and with the vendors pushing JSF as the de jure JEE framework over the de facto Struts, you had to wonder about its long term prospects. What Ti means is that Struts ancien becomes a solid bet all round, since the community will be forced to figure out how to migrate onto Ti when the time comes and Struts is less likely to be abandoned. WebWork is a good engine to work with, better than Struts, so Struts devs will naturally upskill to Ti rather than migrate something like Tapestry, SpringMVC or whatever the JBoss crowd are doing this month. All WebWork really needs is first class integration with Jython so it can dispatch actions to Jython scripts. And to turn it around - if you're thinking about deploying on WebWork, the Ti announcement is nothing but good news.

Django

Powered by Django..

update: contextualised the effbot's django quote to mention Turbo Gears.

In describing his recent experience with Django Fredrik Lundh has more or less echoed my own. I installed it, skimmed the tutorial, started writing a webapp, and had something up and running in just about the most enjoyable first half an hour of learning a new technology that I can remember. Django is good software. Really good. The community is in rude health. Even the BDFL is coming around. Python, going mainstream, is in need of a major cull on the web frameworks front, and Django seems to be just the thing to help that process along. As Lundh puts it "At this point, I'd say Django *is* the winner in the LAMP-as-in-Python space, with TurboGears as a "worth keeping an eye on" second -- it's not quite there yet, as a quick scan of the mailing list headers shows.".

Rails

Powered by Rails..

Rails is the project I think that convinced other communities, especially Java and Python, that accomodating all these "me too" frameworks doing essentially the same thing, is really really dumb. Rails is great fun to use, you get to learn Ruby as a side-effect, and producing decent sites is straighforward. Rails bundles with good Ajax support. One scenario for Rails is that it becomes the Lisp of web frameworks as bigger language communities learn and clone its approach rather than switch. Nonetheless Rails would still be a good framework whatever other communities choose to do.

Naturally plenty of people are going to disagree with these choices and will have good things to say about other stacks. Personally tho', I'm done seeking.


Colophon: why no PHP/Perl stuff? Simply ignorance - I just don't know or use either language for webapps.


February 5, 2006 08:58 PM

Comments

What about TurboGears? I've heard good things about it - some like it better than Django (of course).

February 5, 2006 09:10 PM, Matt Raible, http://raibledesigns.com

For the Java space I still highly recommend taking a look at Wicket - http://www.wicket.com

February 6, 2006 01:18 AM, R.J., http://www.coffee-bytes.com

My Django quote continues "...with TurboGears as a "worth keeping an eye on" second -- it's not quite there yet, as a quick scan of the mailing list headers shows."

February 6, 2006 09:59 AM, Fredrik, http://effbot.org

Fredrik, I filled out the quote to include Turbo Gears. Matt yes, if you're evaluating Django, you should check Turbo Gears as well.

February 6, 2006 12:14 PM, Bill de hOra, http://dehora.net/journal

That was more an attempt to answer Matt than a complaint about your post ;-)

Django is a winner; if you want a Python framework, you want it now, and Django's scope feels right for your application, you don't have to look at anything else.

February 6, 2006 01:12 PM, Fredrik, http://effbot.org

Winner in which context?

AFAIK, some tools are better suited for certain tasks.

Django is not the best option in some application cases not is TG nor Plone, etc

Stating one framework (gosh that's an horrible word) is a winner is just entirely useless and misleading IMO...

But if it suits your needs then it's al good ;)

- Sylvain

February 7, 2006 10:15 AM, Sylvain Hellegouarch, http://www.defuze.org/oss/blog

Note the "if Django's scope feels right for your application" qualifier. Then go read the "really really dumb" part of Bill's post.

February 7, 2006 10:53 AM, Fredrik, http://effbot.org

Post a comment (all fields optional)




Remember Me?

(you may use HTML tags for style)

Trackback Pings

TrackBack URL for this entry:
http://www.dehora.net/mt/mt-tb.cgi/1737