IBM published a nice article on their developerWorks website that compares Ruby on Rails with J2EE. To be more precise, the article compares the complete Ruby on Rails stack to that of a typical Java web application that combines J2EE with the open source Struts and Hibernate frameworks. This is a very valid comparison (Spring and other frameworks would be valid alternatives as well), as both stacks provide similar functionality. There are however crucial differences in the way these are achieved. In particular, J2EE, Struts, and Hibernate all rely on verbose XML configuration files, whereas Ruby on Rails mostly relies on conventions and reflection in order to glue everything together, which in turn should allow the developer to focus on the actual application and business logic rather than dealing with the same plumbing code / configuration data over and over again. This and the highly dynamic nature of the Ruby language itself appear to create a refreshing and potentially much more productive alternative to the established J2EE standard.
Of course J2EE has its own advantages, such as the fact that it is very mature, has excellent tool support (both commercial and open source), strong vendor backing, large developer communities, etc. It’s difficult to imagine Ruby on Rails (or any technology for that matter, with the unfortunate exception of .NET) overtaking J2EE in the enterprise anytime soon.
Still, Ruby on Rails is gaining a lot of traction and I’d certainly like to give it a shot for some small personal projects. My webhosting provider now officially supports Ruby on Rails, so I may start playing with this a little. I thought about adding a moblog to my blog for a while, and Ruby on Rails sounds like it might be a good way to implement this.