I’ve been wanting to try Rails for ages and recently I obtained a copy of the Agile Web development book. The new-ish language Ruby didn’t put me off as I played with it ( Tom uses it so I thought I should try it ) and compared it with Python sometime back when I was first teaching myself Python.

I chose Python as the new 3rd generation (or 4th?) language back then, as I often like to write code without objects. I also didn’t like the end syntax of Ruby and I kind of initially thought the indentation stuff with Python was a good idea. I’ve since gone off Python and my thoughts on Python are detailed in this blog.

Back to the reasonable looking Web Frameworks today:

I tinkered with Rails (RoR) samples (including wow-wee AJAX) from the book and with code generation (urgh) I had quite a complete database driven Web application in next to no time. The directory layout and overall design is pretty clever. I wasn’t too impressed with Web brick as I wanted to work with Apache. But after seeing the nice development logs it produces and increasingly despising Apache configurations, I learnt to tolerate it. I have no idea how stable Rails all is but with Dreamhost support and 37signals it probably does quite alright.

Ok things I don’t like about Rails. Where is the i18n support? The docs are pretty ugly, but maybe I am too used to frame-free Python Docs. It has a bit of an initial overwhelming feel, esp. as I often write “simple” (ok, trivial) Web applications without a need for a database. I still don’t quite know about the dependencies or have a feel for the stability of them, so it puts me on the back foot.

Django implements the same stuff as Rails by the looks I things. That’s a good approach, though that means it doesn’t look like it is bringing anything new to the table and it’s going to fight for Rails mindshare. Good thing for me is that I know Python better than Ruby, but I don’t think I want to spend time on it for now.

A cursory glance at Catalyst makes me think it’s also implementing those MVC thingies that Rails leads. The amazing thing about Catalyst is CPAN. Though my friends use Perl like crazy, I don’t think I want to go back to Perl code for some reason. Though I’ll give it a whirl with my dusty Perl books some rainy day after Django.

Ok, I’ll end this boring review with my burning thoughts:

  • The “project weight” difference with simple PHP applications and say MVC applications is quite large
  • I wish “UNIX” played ball better with the Web. I guess I’ll have to accept they’re almost incompatible
  • I’ve got to take some time out to implement something in Rails
24.148.30.138

Hey there,

Here’s a response to your statement that “it doesn’t look like [Django] is bringing anything new to the table.” Off the top of my head, Django offers the following things that Ruby on Rails doesn’t:

  • Internationalization (you lamented Rails’ lack of i18n in this post).
  • An automatic, production-ready administration interface.
  • RSS/Atom syndication feed framework.
  • The Python syntax you know you love. :)

You’ve got to take some time out to implement something in Django!

Comment by Adrian Holovaty
64.111.108.166
[...] So where are we? Back at square one. This blog about The sysadmin view on PHP is actually quite right. It is so easy to deploy a PHP application in comparison to Rails and Python. [...]
Comment by Natalian » Blog Archive » Deploying is hard