Just like every other software developer who constantly dreams of having a tool that will fix at least some the usual problems of software development, I am really interested in new tools and languages
Ruby on Rails has been gathering a lot of attention for quite some time, and I have been considering giving it a try. One of the things that I have learned in the past is that you need a purpose to actually use a tool. Other than that, you’ll usually be taking a look at it, you’ll have a broad idea of what it does, but you’ll never really understand why it is good or bad.
For ROR case, I was lucky. I had an opportuny to contribute to an exciting project, and I had the chance of choosing the technology for implementation. So I choose Ruby. For a week or so, I have been developing with rails, and it is getting quite interesting. Rails is a full stack technology, which means (for me) it gives you all goodies in one bag, and saves you from integrating different tools.
For the Java and .NET domains, what has been bothering me is that you have many options for different tiers (especially for java). It may sound strange to complain about many options, but when you have to choose among them and interate them together, even if the integration goes well, you find your overall productivity diminished.
This is due to fact that “you” have assembled that solution. You have chosen an interaction technology (swing, windows forms, asp.net, java server faces etc..), a data access method (ado.net, hibernate, llblgen etc) and a backend (name your favorite db here)
This combination could have been formed a zillion other ways, and during your work you always feel the stiches that combine different parts. When it comes to web development with Ruby on Rails, the whole thing is built for a purpose: effectively creating web applications. Many of my friends have commented in the same way: “you can do this in x,y,z..”. Yes, but the thing that seems to make ROR so exciting is that it is focused on a task, and it is designed with the goal of making that task easy.
So far, I can’t say I have gone deep into ROR, but even if I use a comperatively basic and small ide (Aptana), I have accomplished quite good results in terms of productivy. ROR actually pushes you towards a clean, decoupled approach, and it gives you seemles integration among different tiers.
Maybe we got too used to having a front end, some kind of ORM tool and a db, and the integration work among the layers is just “normal” for us, but you can see the amount of work gone into integration effort when you have a toolset that does it automatically for you.
And one more thing, convention over configuration really works fine when you start from scratch. More to come on this one.