Few years back, a lot of developers were tending to hear about Python than about Ruby, so a lot of them shifted to Python. Now, Its likely to have heard about Ruby, especially Java enthusiasts seems to have a love-hate relationship with Ruby and ROR. While there are some who feel it’s over hyped, there are others who feel that Rails is the coolest web application. So who better to talk about Ruby on Rails than the creator of ROR, David Heinemeier Hansson.
In this interview David talks about the growth of Rails and its features. He also tells us why Rails is relevant to Java developers.
Lets see what David has to say about ROR.
Satish Talim >> Hi David, Could you tell us a little more about yourself and your involvement with “Rails?”
David Heinemeier Hansson >> I’m a partner at 37signals. The company behind Basecamp, Backpack, and other successful web applications. With the development of our first application, Basecamp, I chose to use Ruby and began the work on Rails. I basically extracted Rails from Basecamp. So instead of sitting down to think about “what would make a good framework”, I created a real application, saw what worked, and put it into the box calledRails.
Satish Talim >> There’s a big buzz around “Rails”, could you give us your thoughts on “What is Rails and how it’s “different”?
David Heinemeier Hansson >> Rails is a framework for creating Model-View-Control-based applications along the traditional request/response paradigm. So that makes it very similar to what especially Java people have been doing for a long time. Many of the basic patterns are the same, at least the theory is the same. The implementation and the feel is very different.
“The theory is the same. The implementation and the feel is very different…”
It’s difference comes from its embrace of Ruby and its thinking. We’re optimizing for happiness by enabling the creation of beautiful code. This optimization manifests itself in principles such as Convention over Configuration where we liberate people from repeating the same mundane decisions over and over again. The stuff that doesn’t matter, that you don’t care about, and that you’ll gladly trade for higher productivity.
Flexibility is often sub-optimization that merely succeeds at making everything equally hard.
“Difference comes from Ruby On Rails’ embrace of Ruby and its thinking…”
Satish Talim >> In a very short time, “Rails” has perhaps become the most talked about ‘framework’ around. What do you think are the reasons? Did you see this coming?
David Heinemeier Hansson >> Rails is optimized for programmer happiness. That’s a very disruptive notion. The fact that we care about what makes programmers happy allows us to unleash a world of passion. That passion in turn leads to motivation. And motivation is the most powerful productivity booster we have available.
“Rails is optimized for programmer happiness…”
I’m certainly surprised that we’ve been able to grow this quickly, this fast. But I was fully aware that Rails would be rocking the boat. We’ve slaughtered a whole farm of holy cows. You can’t do that without causing a stir.
Satish Talim >> One of the wonderful features of Rails is the differentiation between production and development environment, which normally doesn’t come with web tools. Was it a conscious decision to add a flavor of “Enterprise” feature in Rails?
David Heinemeier Hansson >> Actually, we have a conscious mission to avoid things with enterprise labels. To me, enterprise is not about technology or best practices. But all about legacy, complexity, and doubtful value.
“We have a conscious mission to avoid things with enterprise labels…”
So the fact that Rails supports three environments out the box (test, development, and production) is not about enterprise, but about pragmatism and need. To do sane development, you need this division. Every thing from the smallest 4-hour application to the biggest projects benefits from it.
Satish Talim >> Is “Rails” well-suited for Enterprise level applications?
David Heinemeier Hansson >> Again, I think of the “Enterprise” label as an excuse to deliver expensive and painful software over budget and late. So I’m hesitant to say that Rails is well suited for that. But if you take the more generally used definition, such as “important software for the Fortune 1000”, then yes, I most certainly think Rails is well suited to serve them. Who are not interested in getting valuable software faster and cheaper?
“I think of the “Enterprise” label as an excuse to deliver expensive and painful software over budget and late…”
The caveat to that is of course that a lot of enterprises are culturally and mentally unable to embrace the philosophies that Rails are built upon. So if you’re not having any luck getting agile methodologies adopted by your organization, there’s a good chance that Rails will be a poor fit. Not for technical reasons, but for political ones.
And the final caveat is of course that Rails is about a vertical, but huge, scope: The service/database-backed application. So it won’t help you launch rockets into space or power the pacemaker. It’s just about delivering applications for the web.
Satish Talim >> Where do you see “Rails” going from here?
David Heinemeier Hansson >> It’s all up from here. The current level of enthusiasm is mainly being generated by early adopters and thought leaders coming over. The tipping point is still in its infancy.
Readers can keep up with David through his bloghttp://www.loudthinking.com
Satish Talim has been in the software development field since 1978. Satish has helped many US software companies likeInfonox and others, to set-up their subsidiaries in Pune, India . Nowadays, he does consulting, training and other odds and ends with Java and other languages, including Ruby. He loves to blog onJava,Ruby andChess.
Read the full interview onIndicThreads site.