Our new project is written in Ruby on Rails. This is the first time that I've been able to get down and dirty with a real Rails project and I have to say that it has its ups and downs. The upside is that I really like the way it 'feels'. There is something about pretty code that is satisfying to an old programmer. When I'm stuck on something that doesn't work for some reason I get that "AhHa" moment when it finally clicks. I like that.

The downside is that when it fails it fails badly. One example is the pluralization support (requirement ?) in Ruby. Using the name "Campus" for one of my models caused all sorts of problems down the road. It turns out that Ruby doesn't properly pluralize Campus as Campuses and just uses the root word for everything. This obviously isn't the Rails way to do things so I forced it to use the proper pluralization in the Model. While I got it working in Rails proper other things didn't like it. Railroad, a great little tool to check your models, puked all over the place looking for a table called Campus. Inserting test data using fixtures failed in weird places too. After too much hair pulling and cursing I had to rename it to something more suitable to Rails.

I like Rails & Ruby but this something that should be handled more gracefully. A language should not arbitrarily drive the design of a system. Or at least there should be a way to localize plurality settings. :/