Web developers are talking about a new object-oriented development framework. It’s called Ruby on Rails, and those who have jumped on board so far say the open-source software has advantages over Java 2 Platform Enterprise Edition
(J2EE) and the PHP Web scripting language.
“Rails is a great toolbox that works well and stays out of my way,” says Lee O’Mara, a Toronto Web developer. “It simplifies the tedious and mundane tasks, leaving me to tackle the real problems at hand. Rails provides me with the 90 per cent of a project that is common across most applications.”
Ruby on Rails – sometimes called simply Rails — is a development framework built around the Ruby programming language.
Yukihiro Matsumoto, a Japanese programmer, wrote the object-oriented Ruby language in the mid-1990s. David Heinemeier Hansson, Copenhagen-based lead programmer for 37signals LLC, a Chicago-based software developer, switched from PHP to Ruby because “I was not happy with the amount of repetition I was seeing in the different applications I was doing.”
While he liked Ruby, Hansson says, it is a general-purpose language, whereas PHP was designed for Web development. So he set out to build structures on top of Ruby to make Web development easier. “Initially I was doing this work for me,” Hansson notes – but then he realized that he was creating a generic framework others might use.
While working on software products for 37signals, Hansson extracted functionality he thought could have broader uses, generalized it and incorporated it in Ruby on Rails. In July 2004 he released Rails as open source software.
Since then, Hansson says, other developers have contributed more than 1,000 patches to Rails. “By far the bulk of the new stuff going into Rails is coming from other contributors, not from me any more,” says Hansson.
O’Mara, who like Hansson previously used PHP, says he appreciates Ruby on Rails features such as its succinct syntax. “I never found a single framework in PHP that was as complete a package as Rails, nor any that were as easy to use and as flexible,” he says. “Compared to PHP, Ruby on Rails make web development bearable again by freeing me from having to cope with common implementation details.”
Hansson says Ruby on Rails is comparable to J2EE in some ways but differs in others. Both are used to create similar applications. Hansson says J2EE has more enterprise-oriented functions, while in Rails “we don’t have these huge application servers, we don’t have this static language that needs to be compiled all the time.”
“Rails allows significantly faster development time than J2EE,” says Mike Bowler, president of Gargoyle Software Inc., an Ajax, Ont., software development consulting firm. J2EE has capabilities Ruby on Rails lacks, he adds, but most of these are little-used functions.
Hansson says the Ruby language is more purely object-oriented than other popular Web development tools, including Java, and he hopes it will help drive renewed interest in object-oriented programming.
The framework has some limitations. O’Mara says it can be tricky to install on Windows, and its limited acceptance so far makes it harder to implement on shared hosting. Also because Rails has been around only a year, he notes, there is less documentation available. Hansson says the first book on Rails is due to appear soon.
Bowler says corporate developers will probably take some time to adopt Ruby on Rails, because they tend to be conservative about new platforms. But he adds: “I expect that adoption of Rails will be fairly quick for small companies delivering services that they host themselves. The increased productivity from Rails will allow these companies to jump ahead of their bigger competition.”
O’Mara expects Rails to grow rapidly. “It has a vibrant online community that is both welcoming and supportive.”
And Hansson says he is pleased with the attention his creation is getting. “At least within the last couple of months,” he says, “if you’re doing any kind of serious Web development you’d have to be living under a rock not to know that there is this thing called Ruby on Rails.”