London Web Frameworks Night

I have just returned from the London Web Frameworks night, a free event organised by folk at the London Perl Mongers. There were three talks, each discussing a different framework, and each framework was based on a different language. Here I present a (very) brief summary and my initial impressions of each:

Catalyst

I only arrived halfway through this one, so be warned - I may have badly misunderstood everything that was talked about :) This framework is based on Perl, and shares many features in common with it's parent language. Although it is based on the same MVC pattern as the other two, because it is Perl you don't get just the three components, you get to choose which popular CPAN module you want to slot into each of the main roles, and then get to tack on a few more for good measure. Though flexibility is always good I think the large array of possibilities is also a little bewildering. I didn't get to see how it dealt with the database schema, something for future research.

Django

A Python based framework, though known to work with mod_python which makes it a bit more likely to be useable on standard shared web hosting. Designed originally (prior to being open sourced) as a website publishing system for a local newspaper, but now flexible enough for most website application requirements. The most obvious strength of the framework is it's 'Magic Admin Interface', which generates a very impressive data entry and content management interface automatically from the schema. It also has a nice templating system inspired by (the PHP templating system) Smarty, which is being ported to Rails at the moment. One weak point, I felt, was that you couldn't point it at an existing database and have it generate the schema, instead you write the schema in Python and the framework creates the database tables for you behind the scenes. This seems to unreasonably limit it to 'new' website development, though I'm sure there will be tools around to help you reverse engineer the Python schema descriptions from an existing database, if not now then soon.

Ruby on Rails

Although it was claimed that Django is actually of similar vintage, Ruby on Rails is the web development framework that has inspired all the others and generated the current strong interest in web application frameworks. It will work against existing databases, though you may have to restructure them to match the expected naming conventions, and it will dynamically reconfigure itself as you change the database schema. In contrast to Catalyst, Rails has, built into it, an opinion of how websites should be developed and, if you don't adopt 'the way' then it will probably turn out to be an ultimately unsatisfactory experience. However, if you follow 'the way' (which is basically fairly sensible) then you can be churning out websites in no time. It offers a wide range of automation scripts to take the drudge out of things and is easy to pick up quickly - the gentleman doing the presentation had only started investigating Rails three months before and was able to demonstrate a fairly complete looking system (an interface in the BBC programme database) after only six weeks of coding.