I’ve decided to highlight Rails this month, because it’s
remarkably boring.

That’s right: Boring. Even David Heinemeier Hansson (its author) agrees.

I started writing a little web application for my other non-profit to put Rails through its paces. Armed with experience, let me step you slowly through its ever-so-boring pieces:

  • Installation is a total snoozer. [chad@mymachine]$ sudo gem install rails Attempting local installation of 'rails' Local gem file not found: rails.gem Attempting remote installation of 'rails' Install required dependency rake? [Yn] y Install required dependency activerecord? [Yn] y Install required dependency actionpack? [Yn] y Successfully installed rails, version 0.6.0 [chad@mymachine]$ mkdir -p ~/code/ruby [chad@mymachine]$ rails ~/code/ruby/mynewsite [chad@mymachine]$ cd ~/code/ruby/mynewsite [chad@mymachine]$ public/dispatch.servlet [2004-08-16 22:34:15] INFO WEBrick 1.3.1 [2004-08-16 22:34:15] INFO ruby 1.8.1 (2003-12-25) [i686-linux] [2004-08-16 22:34:15] WARN TCPServer Error: Address family not supported by protocol - socket(2) [2004-08-16 22:34:15] INFO WEBrick::HTTPServer#start: pid=21242 port=3000

Not only did this install Rails and all of its dependencies (using RubyGems, of course), but the last little bit setup a new Rails workspace with everything I needed to actually run a Rails application and then started it up with Webrick. Where are all of the XML config files that I love so much to squint at?

  • Writing database code is even worse. For the basics, you don’t have to do any coding. What kind of sick mind was behind ActiveRecord anyway? How are we programmers supposed to stay employed if there’s no work for us to do?
  • Gluing this all together to get an end-to-end web application working is the biggest non-event yet. Roughly: scaffold :tablename

That sets up "scaffolding" which creates (in the runtime environment) controller, view, and model code to fully manipulate the table that you point to. In case you missed it (it was quick), here it is again:

        scaffold :tablename
  • The most frustratingly boring part of all of this is the documentation. David’s got videos, wikis, tutorials and demo apps (all on www.rubyonrails.org), which means I didn’t get the fun of having to wade through Rails’ source code every time I wanted to implement a new feature for my web application.

Despite being arguably the most boring web framework I’ve ever seen, a lot of people seem to be coming to Rails from all over the place. Even the DotNet and Java guys, who definitely don’t seem to like being bored with nothing to do (All that Static Typing leads to lots of Typing) seem to be coming around to Ruby-land as a result of Rails.

I hear there are talks about porting this thing to languages like Python and TCL (Java, too? Is it possible in Java?).

Thankfully, though Rails itself is boring, it stays out of the way, and you can do really interesting things with it.

I hear that this is destined to be one of the more interesting examples…