What's the fuss about Rails?
Ruby on Rails is making a lot of noice these days. I first heard about it on comp.lang.python, where it was mentioned a few times. Later, I noticed how many people wanted to write an application on Rails. And this weekend, it has made it to Slashdot home page. That's attention. Rails is already Ruby's killer application.
Rails has appeared in a very interesting moment. First it was Perl, and then PHP. Both languages were for some time considered the standard way to write a web app (that, despite Paul Graham's success using Lisp, but that's another history, and he's Paul Graham anyway). But neither solution does scale well. Perl's limitations became obvious first. Now it's PHP turn, as people try to use it for more complex applications and start to hit its limitations. It seems that the spot for the best way to write a web app is now free, and Rails is aiming for it.
But despite all the noise, I had a hard time understanding what was it about. Don't get me wrong; Ruby is a good language, and Rails is a well structured framework. However, what can Ruby do that can't be done with a suitable selection of Python modules? Each of the components of Rails has equivalents in the Python camp, that more or less match or even surpass its capabilities.
The answer is simple: convenience. Rails is a one stop shop. People just love that. It makes it easy to install, and avoids the burden of having to choose between the numerous possible combinations of ORMs, templating modules and web frameworks. Rails also offer architectural integrity: all modules are well integrated, and have been built from the scratch to be used together. Few developers ever realize how important this convenience is.
That got me thinking. What does it take to compose a similar package for Python? I believe that someone has to build a distribution, so to speak, using some of the above mentioned components. That would alleviate some of the more obvious problems with selecting, downloading and installing a handful of tools from a universe of hundreds (literally). The documentation needs to be integrated as well. A single web site would become the hub of activity around which a community could gather. It would build momentum. It could become the new killer application for Python.
The good news is that people are aware of the problem, and working on it. A new project, named Subway, aims to implement something similar to Rail. The project's goals are fairly aligned with the vision presented above. For now, the work seems to be on replicating Rail's CRUD model. The project uses CherryPy, SQLObject, and Cheetah to provide other parts of the functionality. Will it work? I still don't know; I agree with some of the choices, but I think that other parts of the system (particularly the templating) deserve something simpler and more pythonic. But it's being done, and that's what counts now.
Rails has appeared in a very interesting moment. First it was Perl, and then PHP. Both languages were for some time considered the standard way to write a web app (that, despite Paul Graham's success using Lisp, but that's another history, and he's Paul Graham anyway). But neither solution does scale well. Perl's limitations became obvious first. Now it's PHP turn, as people try to use it for more complex applications and start to hit its limitations. It seems that the spot for the best way to write a web app is now free, and Rails is aiming for it.
But despite all the noise, I had a hard time understanding what was it about. Don't get me wrong; Ruby is a good language, and Rails is a well structured framework. However, what can Ruby do that can't be done with a suitable selection of Python modules? Each of the components of Rails has equivalents in the Python camp, that more or less match or even surpass its capabilities.
The answer is simple: convenience. Rails is a one stop shop. People just love that. It makes it easy to install, and avoids the burden of having to choose between the numerous possible combinations of ORMs, templating modules and web frameworks. Rails also offer architectural integrity: all modules are well integrated, and have been built from the scratch to be used together. Few developers ever realize how important this convenience is.
That got me thinking. What does it take to compose a similar package for Python? I believe that someone has to build a distribution, so to speak, using some of the above mentioned components. That would alleviate some of the more obvious problems with selecting, downloading and installing a handful of tools from a universe of hundreds (literally). The documentation needs to be integrated as well. A single web site would become the hub of activity around which a community could gather. It would build momentum. It could become the new killer application for Python.
The good news is that people are aware of the problem, and working on it. A new project, named Subway, aims to implement something similar to Rail. The project's goals are fairly aligned with the vision presented above. For now, the work seems to be on replicating Rail's CRUD model. The project uses CherryPy, SQLObject, and Cheetah to provide other parts of the functionality. Will it work? I still don't know; I agree with some of the choices, but I think that other parts of the system (particularly the templating) deserve something simpler and more pythonic. But it's being done, and that's what counts now.

15 Comments:
At January 22, 2005 8:11 PM,
Anonymous said…
Hi Carlos:
- Forms are being redone in FormKit, though I've begun making a few changes. I'm going to see if it looks better than the widget system I have in place right now.
- Regarding templating:
This was originally going to use a templating system I developed. Think PyMeld + PSP and all XHTML compliant (but not required) and you've got it. However, I a) didn't have the time to finish it and b) wanted to reuse as much software as possible, so I decided to go with Cheetah.
Why Cheetah? It can be precompiled to fast Python code, and most people can understand it fairly quickly. It can also generate other media (CSS) and doesn't screw up WYSIWYG editors as bad as other templating languages do. ZPT is far too complicated for someone coming from a PHP background (hell, I still find it hard to get anything done). Nevow has some cool ideas, but it's too radical/huge. HTMLTemplate is nice but it's a pain to do simple things like alternating row colors. Ditto PyMeld.
Ruby on Rails and Subway aren't about doing web development in a radically new way; they're about doing it in a way that makes sense. I think to most people, Cheetah will make the most sense. But hey, give me your 2 cents on templating language.
At May 25, 2005 7:59 PM,
Anonymous said…
Why are you spreading FUD about ruby and rails? What exactly threatens you about having competition with python?
At October 18, 2005 2:20 PM,
Anonymous said…
Just came accross your blog while browsing. I invite you to visit: website design bathurst
At November 2, 2005 11:04 AM,
Roberto Iza Valdes said…
This comment has been removed by a blog administrator.
At February 15, 2006 10:19 AM,
luvz-desire said…
I look for blogs as great as your work. Fine
blog. I found your site suitable for another visit!
Everyday of the month you need to peep my home based travel business blog.
At February 19, 2007 8:14 PM,
Anonymous said…
single match dating
At February 27, 2007 1:14 AM,
Anonymous said…
http://www.adquity.com
Classifieds for our community. Buy, sell, trade, date, events... post anything. Adquity Classifieds.
http://www.adquity.com
At March 3, 2007 11:02 AM,
Anonymous said…
Thanks for the tips and insights. I run site and blog for legitimate home business feel free to drop by and comment or swap links.
At August 18, 2007 5:30 AM,
<a href="http://www.xanga.com/buy_levitra">Buy Levitra</a> said…
Great article! Thanks.
At August 18, 2007 11:13 AM,
<a href="http://phentermine1.eamped.com">Phentermine</a> said…
Thanks for interesting article.
At September 10, 2007 1:13 AM,
<a href="http://courses.cvcc.vccs.edu/ENG112_GROSS/_Chat_Room/000008fd.htm">Anonimous</a> said…
Excellent website. Good work. Very useful. I will bookmark!
At March 10, 2010 6:15 AM,
Anonymous said…
good blog friends! Post your article which is also useful for readers and to share information or experiences you have. I will visit your blog again. male enhancement - i love you full http://www.male-sexual.com
At March 11, 2010 5:55 PM,
Anonymous said…
Free information about penis enlargement products, how it works, price of products, top products, and review of penis products. Visit http://www.buypenisenlargement.com
- male enhancement pills - http://www.male-sexual.com
At March 14, 2010 8:25 AM,
Anonymous said…
Naturomax is a high quality male improvement pill that’s guaranteed to improve your sex life. http://www.male-sexual.com/naturomax.html
http://www.youtube.com/watch?v=pobXsnw7CWs - http://www.male-sexual.com/vigrx-plus.html
At April 13, 2010 3:52 AM,
Anonymous said…
They are becoming the enhancement option of choice for many men for several reasons. vimax pills is the best penis enlargement pills on the market today.more info visit http://www.male-sexual.com/vimax-pills.html
Post a Comment
<< Home