Ok, I just finished watching the two main demo video’s of Ruby on Rails from their web site. I’m shocked that people buy into the whole “ruby beats Java arguments” having watched these demos it seems that Rails really has very little to ofer in terms of serious web applications and would only appeal to PHP hackers that want to get something out the door (and spend the rest of their lives fixing the problems).

Oh where do I start… First there is this stupid mentality that has been in the programming community since forever: “Low line count is good”. This means evaluating the complexity of a system through its line count, everyone agrees this is a stupid metric yet they keep using it. Within this demo the narrator “brags” about writing only 53 (if I’m not mistaken) lines of code to build a weblog, however Rails seems to be bundled with some elaborate templates including one that practically generates the entire thing… The narrator even stopped the presentation several times to regenerate the code of the blog… When code generation is involved with such a metric line count just doesn’t count! The code might be generated but it will need to be maintained and its complexity still exists and burdens the entire application, writing a line of code takes 1 minute but maintaining a generated line of code is much more complex since people tend to stay away from the generated code (due to its complexity). So the whole idea of generating code to hide the complexity of the web application, useless.

But Rails does something far worse, it uses defaults. Unlike a generated line of code that you will eventually track using standard debugging practices, when functionality is determined by default finding that out (without reading every single page of documentation which is just not practical with todays development platforms) is just impossible. I won’t be able to grep the code and find the source of the problem or the area to change and guessing that a default in some anonymous method is responsible for this functionality is just not something I would expect from someone new to this environment.

Some people will chime in claiming that with todays world you need fast prototyping and development, this is true however you also need to support i18n and you will always need extensive customization. In these respects Rails is a step in the wrong direction that will complicate our lives further, I would like to see the same demos and some customization done by someone with limited experience in Rails. In Java I myself can produce the same sort of results in the same amount of time using J2EE even without hibernate but with a decent IDE.

The syntax seemed like a simpler version of JSP with extensive use of scriptlets and no custom tags, the IDE doesn’t seem to have even basic features like completion and the documentation seems monolithic and dissorganized although when delving into a particular feature it seems quite detailed.