What is it?
But Ruby on Rails is still the main event, and December's release of Ruby on Rails 2.0 caused a stir, not least because of the abandonment of Soap (Simple Object Access Protocol) in favour of Rest (Representational State Transfer).
Rest is described as an architectural style, not a standard or specification. Restful web services make use of existing technologies, such as HTTP with its simple operations such as "put", "get" and "post", and of URLs to uniquely identify each resource. Rest is already widely used, for example, by Amazon. In fact, the Worldwide Web itself has been described as the largest Rest application. Making use of the existing common infrastructure means that Rest applications themselves are similar in structure and can more easily interact and share data.
Where did it originate?
Ruby on Rails was developed by David Heinemeier Hansson of the web-design company 37signals, and released in 2004. Rest was defined in 2000 by Roy Fielding, part of the IETF working group which specified HTTP. Fielding also co-founded the Apache HTTP Server project.
What is it for?
Rails is used to develop web applications using existing database schemas. It provides "scaffolding" - skeleton code - to simplify structuring applications. Like Struts and other web frameworks, Rails uses the Model-View-Controller (MVC) architecture, which separates different levels of the application and allows them to be worked on without having to make corresponding changes to other levels - enabling a move to Ajax in the view layer without touching the data model.
What makes it special?
Rails users claim a substantial productivity increase. More generally, Rest champions say that existing web services technologies like Soap and WSSD have become increasingly complex and bogged down by slow moving committees and industry consortia. By making use of the existing architecture and protocols of the web, Rest is a more natural fit, and free from the interference of external vested interests.
How difficult is it to master?
Rails simplifies web application building, making it easier to be productive in Ruby and other supported languages. Despite its use of familiar web technologies however, it can be difficult to get your head round Rest at first.
What systems does it run on?
Ruby on Rails.org says "just about any operating system will do, but we recommend a 'nix-based one for deployment".
Ruby on Rails is widely shipped and supported - by Oracle, Apple and IBM among others. IBM has released IBM Sharable Code, an online development platform for Ruby on Rails.
What's coming up?
The forthcoming ASP.NET 3.5 Extensions use the MVC architecture and support Rest, and have been dubbed "ASP.Net on Rails".
Rates of pay
Ruby on Rails is usually required as part of a larger portfolio and rates vary accordingly.
See Ruby on Rails and Ruby on Rails on Oracle: A Simple Tutorial. Also, An introduction to Ruby on Rails for DB2 developers and other Ruby, Rails and Rest resources on IBM's Developerworks. There are a number of books including Agile Web Development with Rails and Restful Web Services, both from O'Reilly and Associates.
This was first published in January 2008