Rails 3

As a test project, I updated linuxsi.com (in Italian) to Rails 3.  So far, I am not terribly impressed.  It's nice enough, but the upgrade process was quite painful – there's a lot involved in upgrading even such a relatively simple site.

Rails remains the best thing out there, as far as I can tell, in terms of programmer productivity for web projects, but at times it seems like there's a lot of taillight chasing.  Upgrade this. Move to this newer, fancier, shinier system.  Replace that.  Sure, I suppose you can always stick with older versions, but it seems that that is a recipe for simply postponing all of the changes until a later date, when they become even more onerous.  And Ruby gems don't really seem to have a mechanism to separate updates with new features from security updates, so for some things staying with older versions might be a security risk.  And stuff like plugins mostly just sits there where you dumped it into your project, without any real sense of an upgrade path.

I suppose I'm being a bit of a Grumpy Old Man, but at times the changes feel a bit gratuitous, and with all the breakage that Rails 3 causes, I would caution against upgrading to it for existing projects – use it for new projects to learn it.  In some ways it seems to be a Ruby web framework that happens to have some compatibility with Rails.  But not 99% – more like 80%, so that you'll spend 80% of your time upgrading that 20%.

As one particular example, if you look at the original rails screencast, he uses <%= form_tag, with the "=".  Subsequent versions of Rails dropped that, so you'd do <% form_tag …. do …  and now, with Rails 3, we're back to <%= form_tag, with the "=" again.  Hrmph!

Hopefully, with a bit of time, I'll see some of the nicer aspects of Rails 3.