It’s Thursday morning, and I’m in Portland, Oregon at the 2007 O’Reilly Railsconf, all about the web programming language/environment/framework called Ruby on Rails. I was introduced to Ruby on Rails by a friend/associate who I hope to be doing some work with soon – we’re part of a group looking for funding to develop some applications. I program in a few languages, mostly PHP, but agreed to learn Ruby on Rails after being introduced to it.
Ruby on Rails, it turns out, is a controversial language, in a way that is very reminiscent of the Apple vs. everything else debate. Rails enthusiasts are very attached to the platform, and adherents of Java, C, and even PHP, tend to be very skeptical, with complaints that the structure is too rigid and that the language only goes so far. They might be right – I’m not fluent enough yet to know. But there are a few definite things that have me interested in Rails.
- Rails abstrats the database creation and management process in a really fascinating way. Using the MVC framework — model, views, controller — you basically develop your database using plain english to describe the relationships between tables. This really works for me. To create the database, you write some very simple code that adheres to certain naming conventions, and then you can manage the database almost exclusively from the code.
- Once the database is created, Rails uses a method called scaffolding to automatically create forms for database manipulation. With one line of code in your controller, you can very simply grab data from multiple tables using a simple syntax. Rails makes it all very, very easy.
- I’m looking for a holy grail, of sorts, something that falls halfway between a programming language and a content management system (CMS), and this comes close. What can we use to rapidly develop interactive, web-based applications that doesn’t lock us into the type of assumptions that Drupal and (the current version of) Joomla do, but don’t require building the whole thing from scratch? Ruby on Rails is still a pretty complex thing for most techs at non-profits to budget the time to learn, but it’s intriguing, as is the move in the next release of Joomla to have it sit atop a Ruby on Rails-like framework (that, unfortunately, lacks the database routines).