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 called
Rails.
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.
Satish Talim has been in the software development field since 1978. Satish has helped many US
software companies like
Infonox 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 on
Java,
Ruby and
Chess.
Copyright 2004 Rightrix Solutions. All rights reserved. All product names are trademarks of their respective companies. Views
expressed at PythonThreads.com reflect the views of the authors alone,
and do not necessarily reflect those of PythonThreads.com.