Tuesday, October 09, 2007

Ruby on Rails

It is hard to be excited over a new language nowadays, but recently I came across one which seemed to make web & database development fun again.
I am referring to the combination of Ruby & Rails (RoR). This was a framework built for real world development problems rather than for 'building a framework' as per it's founder.

It has several interesting features:

1. Lack of strong typing & support for 'duck typing' - it works even though you feel lost sometimes if you have been a C/C++/Java/C# programmer.
2. Configuration by convention - no need to configure stuff if you follow the convention, but you can configure if you need to as well.
3. Brevity of expression - introduced by C which can easily get you a cult following. eg. one line to write a program which prints itself.
4. Dynamic nature - ability to add methods or redefine methods on the fly - to any class in the system, even built-in ones.
5. script/console - a hidden gem, difficult to live without once you use it.
6. code generation & metadata programming - similar to wizards in VS, but used for many more tasks and ActiveRecord takes metadata programming to next level.
7. production vs development vs test modes - is there any web app which has the same env in development & production? RoR acknowledges that.
8. Agile development, unit tests & scaffolding - it is constantly evolving, encourages testing, scaffolding is now getting obsolete in EdgeRails but useful.
9. AJAX & REST - supports the latest trends in web development, Java is just beginning to have a JSR to support REST!
10. Moreover, it encourages you to provide features and not spend time write ORM xmls or waste your machines resources running a J2EE server!!

Some of these features are 'interesting' and could be scary to a C++/Java developer or someone with an enterprise development background.
But, you have to consider that this is mainly for web server side development with a lot of work on databases!
JAVA had it's run with banks & financial institutions but it seems RoR just needs a corporate sponsor to mature & succeed in the long run - Hint: IBM, Oracle, Sun.

Note: RoR is already several years old now.