March 2008

07
Mar

Copycat frameworks

(Update: it appears that I misjudged Grails here. The author of Grails has advised me that it is built on mature, tried and tested Java technologies such as Hibernate, Spring, and so on, and it seems that Groovy is not just another random programming language but an extension of Java itself to incorporate language features such as closures, dynamic typing and operator overloading. Unfortunately I won’t be able to attend the lecture myself, but it may well be worth checking out if you are a Sussex based Java developer. More details are in the comments.)

I was asked today if I’m interested in going to a lecture at Sussex University on a new web framework called Grails, which is written in a language called Groovy that runs on the Java platform.

Not really.

One glance tells me it’s Yet Another Rails Copycat. It seems that everyone and his dog are writing them these days, and most of them are completely unnecessary. If I really wanted to do something Rails-ish on the Java platform I’d use Rails with JRuby.

The fact of the matter is that while it’s worth knowing two or three different web frameworks, some of them are just too niche to bother with. Groovy is currently at number 32 in Tiobe’s Top Fifty, just above PL/I, Smalltalk and Haskell, with half the popularity of Fortran and a third of the popularity of Scheme. And nobody except Paul Graham writes web applications in Scheme.

03
Mar

Derailed

This evening, I decided to have another go at Ruby on Rails. I’ve dipped my toe in the water a couple of times but I’ve never managed to spend more than an evening or two on it so far, and I thought it was about time I learned it properly. So I get out my copy of Agile Web Development with Rails and start to work my way through it.

Only to find that putting scaffold :model in your controller — one of the biggest selling points of Rails, and one of the first things that all the tutorials teach you — no longer works in version 2.0. Turns out that it has been relegated to a plugin, which doesn’t work without a second plugin, which I couldn’t get to install.

The new scaffolding doesn’t do what I want it to either. I just wanted to scaffold a new controller and associated views that would work on an existing model. The new approach only allows you to create your scaffolding in tandem with a new model, which is not what I wanted.

This does not inspire confidence. If the upgrade to 2.0 breaks one of the very first things that Rails n00bs like me have to learn, I shudder to think what it does to more advanced functionality.

Can somebody please explain to me why Rails is supposed to be so cool?