October 31, 2005 4:00 AM PST

Ruby on Rails chases simplicity in programming

Can one man and a mantra of "radical simplicity" change the world of Web development?

David Heinemeier Hansson, a 26-year-old Copenhagen native, has built a "framework" to help Web developers be more productive and has released the package of tools through an open-source project.

His software, Ruby on Rails, only out for a little more than a year, has started a buzz among the legions of developers and high-level executives that track the trend-driven world of software development.

News.context

What's new:
Ruby on Rails, a relatively new Web development framework, has become popular among programmers for its simplicity and productivity.

Bottom line:
Although created by just one person, the software is having an impact and getting noticed by pioneering programmers eager to spot hot, new trends. Some analysts are recommending it for new Web applications.

More stories on Web development tools

Hansson's quest to build a practical and productive Web development framework demonstrates how a single person can shake up the status quo, even in a development world where a few companies dominate.

The trick, said Hansson, is to "slaughter the holy cows," the well-understood ideas of computer science that dictate how programmers work. In many cases, software vendors design products for difficult problems, an approach that leads to excess complexity, he said.

His goal with Ruby on Rails is not to create a sophisticated development framework that the engineers at Google or Amazon.com will flock to. Instead, he has focused on creating templates and designs that tackle the unglamorous problems, such as making database modifications, that the great majority of Web developers face every day.

"The major delusion I want to shatter is that you can successfully use the same types and tools for solving the biggest problems in the world and have a pleasant time applying that to solving the normal problems of the world," Hansson said.

Ruby on Rails is not used nearly as much as other Web tools such as PHP, Java or Microsoft tools. But it has caught the attention of some of the influential programmers who help popularize new products.

David Geary, who has authored books on Java and sits on the technical committee for the latest Java Web programming model, has found that Ruby on Rails is five to 10 times faster than comparable Java frameworks. Like Java did a decade ago, Ruby on Rails is getting developers excited by making them more productive, he said.

Clearing the tracks
"No other alternative in enterprise computing has nearly as much mindshare as Rails," Geary wrote in a blog posting. "Will Rails hit a tipping point and become widely adopted in the near future? I am certain of it."

Listen up

CNET News.com reporter Martin LaMonica talks with Ruby on Rails creator David Heinemeier Hansson about why the software is getting noticed.
Listen now... (3.2MB mp3)

The vision of Ruby on Rails, or RoR, is to combine the speed and ease-of-use of scripting language PHP with the "clean," structured approach of Java, Hansson explained. That combination makes code quick to write and easy to maintain over time, he said.

"We're trying to fuse those two extremes (of Java and PHP) and be quick and clean," Hansson said. PHP applications are difficult to maintain, while Java Enterprise Edition software is a "complex monstrosity" that's hard to learn, he said.

There is currently one book on Ruby on Rails, but seven or eight are being written now. The first conference of Ruby developers last year had 60 people; this year there were about 200, the majority of whom were doing commercial development, Hansson said. He predicts 800 attendees will be at next year's conference.

The interest in Ruby on Rails is fueled in part by a larger trend toward scripting languages that aim to replace Java or Microsoft's C# language. Scripting, or "dynamic," languages such as Python, PHP and Ruby are simpler to learn, according to analysts and developers.

David Heinemeier
David Heinemeier Hansson
Creator, Ruby on Rails

Research company Burton Group recommends that corporate customers consider Ruby on Rails for new Web development projects. The tool set is particularly useful for "Web 2.0-style" applications that may be hosted, said Burton Group analyst Richard Monson-Haefel. Ruby on Rails allows developers to build interactive Web pages using the AJAX set of development techniques.

But because Ruby on Rails takes some unconventional approaches, notably in databases, it does have some limitations, he said.

"It's really only practical in cases where you have complete control over the database schema or you're doing a new 'green field' application," Monson-Haefel said.

For Hansson, his decision to not support common database features, notably programs

See more CNET content tagged:
Ruby on Rails, Web development, programming model, programmer, simplicity

21 comments

Join the conversation!
Add your comment
RoR clarifications
Let's clear some things up.

I have years of experience with Java/Struts/J2EE, PHP, and many other languages/frameworks, and have set up and benchmarked RoR applications recently. I used to be more enthusiastic about RoR, but when I tested it in August (I realize it was/is still beta) it had *major* performance problems. I understand both the tarpit of J2EE development and the amateur-hour nature of most PHP projects. Ruby is a beautiful, vastly more appealing language than either Java or PHP.

I greatly admire the goals of RoR and congratulate DHH both on his marketing skills and on pointing out that the J2EE emperor, particularly Struts, wears no clothes! But before we get too caught up in the hype, let's be real.

RoR *IS NOT* "five to 10 times faster than comparable Java frameworks". Not even close if you are talking performance. In fact, it is more like 30-40 times *SLOWER* than raw JSP with pooled JDBC connections, even after the virtually mandatory optimization of a persistent FastCGI interpreter.

Where RoR shines is on *productivity*. And I agree that a 5-10 fold increase in productivity is profoundly more important than a 5-10 fold increase in application speed. Usually the bottleneck in web apps is either the network or the database anyway, so maximizing execution speed is largely a waste of time beyond a certain level.

There are alternatives to RoR while it matures; Catalyst is a similar framework for Perl with much better performance and pluggable MVC components. ColdFusion is an ugly language and framework compared to RoR, but it has a lot of built-in functionality and very good performance since it is compiled into Java bytecode. Finally, there is ASP or ASP.NET with embedded Perl.

One of the key productivity benefits of Ruby over Java is the fact that it is a dynamic language, like Perl, Python, and even PHP. I am a Sun Certified Java 2 programmer, yet I feel Java and Microsoft's Java clone (C#), have virtually no place in web app development. Dynamic languages are the key! They are not necessarily "easier" than Java, but they let you get more done with less code. RoR is a nice, coherent framework with a beautiful dynamic language (Ruby), but until its performance issues are resolved I will be using Perl-based frameworks or ColdFusion.
Posted by WebProgrammer (12 comments )
Reply Link Flag
Performance
I have found very little trouble in the way of performance. My criteria may be different than yours. With 150 users, I need sub 2 second responses. I have never had a problem.

That said, on data entry areas, I need faster response, as in faster then the data entry people can type, and I have achieved instant response using AJAX.
Posted by amadensor (248 comments )
Link Flag
Agreement
I like this open source software. RoR was very easy to install and configure on a linux system. It took less than 10 minutes after installation and configuration to come up with a working web-application based on a simple MySQL database. As a disclaimer I must admit my initial application did not have a well-polished gui. However, after continuous usage using the built-in RoR web server, I noticed that execution is a bit slower than a compiled Microsoft.Net web application for the same database. I have not been able to test RoR using apache yet, I hope to get better results when I do. The Microsoft.Net application is well polished as it had been in development longer, but the development of the Microsoft.Net web application took considerably longer than the RoR version (10 days vs 10 minutes is no contest).

My hope is that RoR will eventually include the following as it matures:
1. The ability to compile generated scripts into actual computer code to make them run faster.
2. The ability to use other scripting languages
3. A huge library of buttons, code, components and grids that a developer can use in web applications

Yes, I know what I have typed sounds like the features present in Microsoft.Net, that is exactly the point: A highly productive and easy to install/configure/generate framework with rapid execution, multiple supported programming languages and a huge library of web-based classes and gui objects would be a great godsend to programmers.
Posted by oparay (2 comments )
Link Flag
Ruby is hot, Zope is hotter, IMHO.
The whole concept of RoR is pretty darn cool, I have to say. However, after using it briefly, it occurred to me, I can develop just as fast in Zope. And if I can do that, why would I want to give up some of the power of the Zope object database AND stored procedures? It suddenly didn't make sense, for me, to follow RoR's ultra simple database design.

You don't need RoR for AJAX, and I have found it easy to do AJAX-type development with Zope, but you could also do it easily with PHP/ASP or others. You just need Dojo or Prototype/Scriptaculous for a common library. (in fact you dont even need those, they just make things easier)

I guess the thing I don't like about RoR, is that it's too simple. What if I *want* to build something out of a stored procedure? I also, don't want to be forced to name my columns the way RoR wants them. I know RoR can be extended to include other, more complex operations, so it will be a good fit for some, no doubt.

Completely my preference, but I like Zope, which is why I do Zajax, now. :)
Posted by (9 comments )
Reply Link Flag
Agreed - also Zope has Plone CMS
Zope and Python are great and similar to RoR in many ways from what I can see. What realy makes Zope the standout choice for me is the existence of the Plone Content Management System (http:;//www.plone.org).

I've found that a Content Management System can be an incredible productivity booster for the web based application development cycle. A CMS allows for non-technical individuals to update and maintain general site content, freeing up developers and designers to focus on new features and functionality. Plone offers an out of the box CMS system complete with Acceess Control Layer, workflow, presentation logic and a ton of other nifty features (even *gasp* "AJAX" support).

I think PHP has their equivalent with Joomla, but I don't see a similar framework in the RoR stack as of yet.
Posted by tapple (1 comment )
Link Flag
Wouldn't be possible without Javaesque PHP 5
Just wanted to throw that in.
Posted by Blito (436 comments )
Reply Link Flag
Yes it would.
Yes it would, especially considering Ruby on Rails is not a PHP framework at all. It's a Ruby framework. Java is great, but is only one (and not the first) of a great many oo languages.
Posted by namelessmike (1 comment )
Link Flag
wish adobe would embrace the XML in KDE
gui tools.. unfortuaitly I had to learn Netscape JavaScript and Allair Cold Fusion way back when.... and that was after learning cgi/perl... and after that I refuse to have to go through that process on a bi-yearly basis until every company and disgruntled plink slipped programmer had their say... I felt like I was playing musical chairs or something...

I have heard filemaker make promises for quite some time.. oh, well.. I will go study for my MCSA exams... let the gods drink their wine... lol
Posted by (47 comments )
Reply Link Flag
Rais is to Ruby as ? is to PHP
"PHP applications are difficult to maintain, while Java Enterprise
Edition software is a "complex monstrosity" that's hard to learn,
he said."

While I agree with the statement about Java, (speaking as a
former Java Programmer), I think it is a bit incorrect to say that
all PHP applications are difficult to maintain.

You could say that Ruby applications are hard to maintain, but
Ruby on Rails applications are better. In much the same way you
could say PHP applications are hard to maintain, but PHP
applications written in WASP, for example, ( <a class="jive-link-external" href="http://" target="_newWindow">http://</a>
wasp.sourceforge.net ) are better.
Posted by bfioca (7 comments )
Reply Link Flag
URL
<a class="jive-link-external" href="http://wasp.sourceforge.net" target="_newWindow">http://wasp.sourceforge.net</a>
Posted by bfioca (7 comments )
Link Flag
Sorry, Rails is no Linux
Rails is no Linux. Linux is the result of a complex project managed by very mature person (by necessity.) Linux Torvolds has never acted as immmaturely as this: <a class="jive-link-external" href="http://weblog.rubyonrails.com/archives/2005/10/28/don-t-be-so-arrogant" target="_newWindow">http://weblog.rubyonrails.com/archives/2005/10/28/don-t-be-so-arrogant</a>
Posted by PragmaticIdealist (10 comments )
Reply Link Flag
page not found
:(
Posted by gesslar (21 comments )
Link Flag
Don't Kill The Holy Cow's
Quoting the story:
"The trick", said Hansson, is to "slaughter the holy cows"


Well, dont kill all the holy cows. I understand in what context he is using holy cows, but i thought it was funny since I run <a class="jive-link-external" href="http://www.holycow.org" target="_newWindow">http://www.holycow.org</a>
Posted by ron williams (34 comments )
Reply Link Flag
Ignore the database at your peril
RoR will take off as soon as it moves past Hansson's bias against
databases. Any busy application that depends on a database will
live or die based on how it uses the database. Perhaps RoR is
targeting smaller applications, but in my experience, people want
to be productive AND they want the power to scale. Does RoR seek
to become the Microsoft Access of web frameworks? If so, great,
but I haven't seen too many developers getting six-figure salaries
making Access databases.
Posted by parasubvert (19 comments )
Reply Link Flag
Ruby on Rails is not used nearly as much as other Web tools such as PHP, Java or Microsoft tools. But it has caught the attention of some of the influential programmers who help popularize new products. The first conference of Ruby developers last year had 60 people; this year there were about 200, the majority of whom were doing commercial development, Hanson said. He predicts 800 attendees will be at next year's conference. The interest in Ruby on Rails is fueled in part by a larger trend toward scripting languages that aim to replace Java or Microsoft's C# language. Scripting, or "dynamic," languages such as Python, PHP and Ruby are simpler to learn, according to analysts and developers &lt;a href="http://www.crapshints.net"&gt;Tips on how to play craps&lt;/a&gt;
Posted by sanyia (2 comments )
Reply Link Flag
Ruby on Rails is not used nearly as much as other Web tools such as PHP, Java or Microsoft tools. But it has caught the attention of some of the influential programmers who help popularize new products. The first conference of Ruby developers last year had 60 people; this year there were about 200, the majority of whom were doing commercial development, Hanson said. He predicts 800 attendees will be at next year's conference. The interest in Ruby on Rails is fueled in part by a larger trend toward scripting languages that aim to replace Java or Microsoft's C# language. Scripting, or "dynamic," languages such as Python, PHP and Ruby are simpler to learn, according to analysts and developers....http://www.crapshints.net
Posted by sanyia (2 comments )
Reply Link Flag
 

Join the conversation

Add your comment

The posting of advertisements, profanity, or personal attacks is prohibited. Click here to review our Terms of Use.

What's Hot

Discussions

Shared

RSS Feeds

Add headlines from CNET News to your homepage or feedreader.