Ruby On Rails – Is it Hype?
October 28th, 2007 by Dan
In the tech world today, Ruby on Rails has now joined the prestigious buzz word club that has members such as SOA (Software Oriented Architecture), SAAS (Software as a Service), and Web 2.0.
When Ruby on Rails started gaining steam, a lot of people said that it would be a major competitor to J2EE (Java Enterprise Edition) and .net. Now that a couple years has passed.. what impact has Ruby on Rails had on today’s tech world?
Before getting into some analysis, let’s talk about what Ruby on Rails is. You could probably get a better explanation from www.rubyonrails.org, but it is basically a rapid development web application framework tightly coupling the 3-tier mvc architecture.
The first big assumption it makes is that your object model mirrors your relational model. So if you have a class Table and a class Chair, you have tables that mirror that construct. In essence, this makes a 1-1 object to relational mapping.
You could argue that 1-1 object to relational mappings are bad, because the premise of objects is to provide a façade to the relational layer, but the programming realities is that a 1-1 object model is easier to deal with.
The next thing the framework provides is all the glue code to talk to this object model. So unlike many other persistence frameworks, you get getters, setters, object browsing all auto generated for you. What Ruby on Rails is thinking is that a lot of time is spent on the model, so the framework will handle a lot of the repetitive and boring orm work for you.
Also, the ror framework gives you a really nice view layer. Similar to .jsp and .aspx, the view files are named ‘.rhtml’. In the view layer, they provide a very easy interface to talk to your controller actions.
Unlike some J2EE frameworks which would require you to do a lot of nonsense such as JNDI lookups (a directory look up to find a controller action) ror already provides that glue to talk to the controller.
Another thing about ror which is special is that it uses the language Ruby. Ruby is a dynamically typed language which gets rid of a lot of the verbosity of Java due to its statically declared. The tradeoff of this is you have more power, but also more responsibility in your coding since you cannot rely on a compiler to catch typing errors (ideally you might write tests).
Lastly, ror abides by the paradigm of convention over configuration. Basically you have to develop your code and platform in adherence to the directory structure and templates they provide. It is basically delegating the expertise to the framework, and assuming the creators of the framework really know what they are doing (which is the case in my opinion).
Ok, now back to the core question. Has Ruby on Rails displaced the major enterprise languages? Will it destroy Java and .net and send it back to the stone age?
And the answer is… no.
The core reasoning of this is the Ruby on Rails solves one niche area, namely development of websites that use a 3-tier mvc architecture. In this space, I would say Ruby on Rails kicks ass of Java and .net given your application is created from scratch.
Secondly, Ruby on Rails is still a young framework. In Java and .net you have so many existing packages available to you, that you can reuse tons of libraries and frameworks that are at your disposal.
If you look at the entire enterprise space, there are tons of stuff being done in addition to simple website 3-tier mvc architectures. There are architectures which require interaction with legacy systems. There are systems which require heavy message oriented middleware. There are mission critical systems demanding static typing. And it is hard to imagine these systems being done in Ruby On Rails.
My overall assessment is Ruby on Rails is a great framework, and really is teaching Java and .net a lesson. Questions like ‘why the hell do we need so many xml files’ to ‘why is developing glue code so painful’ are just the beginning of great questions that will force .net and java to evolve for the better. When they say your coding is around 10x more productive in ror, it really is true.
The thing is you CAN have that productivity in the other enterprise languages, but framework creators are going to have to take a deep look to kiss (keep it simple stupid). I sometimes wonder if concepts like dependency injection and aspect oriented programming are the right things for the new frameworks or are they way to complicated?
If you look at the current camps, there are a bunch of people who bash Java, a bunch of people who bash ror. The thing is both camps have valid points, and instead of shouting ‘my framework is better than yours’, they should objectively examine the frameworks they have to make it better.
So is Ruby great? Yes it is. Is it suitable for all situations. No it isn’t. As a technologist, you have to choose a technology framework stack that suits your business needs. But regardless if you use it or not, this framework is having an impact on Java and .net. And for that, I am happy it is around to force the top dogs to become even better.

(5 votes, average: 4 out of 5)





thanks.
thanks for information…