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