Dave Thomas of the Pragmatic Programmers kicked of RailsConf 2006 with a talk filled with not just visions, but very specific suggestions, for the future of Ruby on Rails. He noted that Rails, according to Google Trends, has passed, and are well on its way to pass, established web development frameworks such as Websphere and JBoss, and that lots of people are already taking Rails very seriously and are making money of it.

Dave Thomas lined up three areas in Rails in which he would to see improvement. The first was Data Integration, where he came up with several ideas on how he would like an existing database schema to be used by Rails, to avoid duplicating information and staying DRY:

  • Validation should be automatically added, e.g. a varchar(100) should automatically have validates_length_of set to 100.
  • It should be possible to define foreign keys in migrations, and to automatically use that information to add a belongs_to relationship.
  • Support for non-integer and composite primary keys should be added – this is quite a big change, though.

Second, Dave Thomas wanted better scaffolding. As he noted, getting a big response from the audience, scaffolding is perhaps the feature that sells Rails to most people, but it’s actually a very ugly and Web 1.0 like thing in it’s default setup. He’d like to see such things as build-in AJAX and cross-application skinning of scaffoldings.

Third, and to me most exiting, Dave Thomas acknowledged that it is in fact quite hard to deploy Rails applications. I’ve learned this the hard way, and Thomas wants to make it easier by improving Capistrano. “We are the early adopters, the smart people, and if we have problems deploying Rails, it will be even more problematic when the Average Joe developer adapts and wants to deploy his Rails Application.” said Thomas, and suggested a “Collaborative Deployment” model, where, instead of all the deployment configuration being stored pr. application, most of the configuration is stored on the server, and the application generally just have to explain which files it wants to deploy, and – most important – which prerequisites it needs to run. The vision is that shared hosts like Planet Argon, TextDrive and Dreamhost all support a standard Capistrano profile, so you would just have to type “cap –deploy-on [domain]”, and if the domain was hosted on a shared host, the deployment would just happen automagically. I’d like that.

Dave Thomas concluded that all three problems are examples of areas with room for improvement, which would take Rails a step further, and that all developers – even former Java-developers – deserve to be happy.

Bookmark and Share