For my current project, I have integrated a few different open source Python projects that give me power at least equivalent to that of Rails. The pre-packaged integration is only one part of it, though: the Rails guys are good at marketing their ideas. Not only are they good at marketing to Ruby audiences, but they also have done a great job of getting Java folks to write about it. Here’s an example: Ajaxian Blog: Ruby on Rails 0.11 includes native Ajax support.
This is done by off-loading the creation of DOM elements to the server side, which returns complete constructs that are then injected live through innerHTML. While this method is slightly more verbose than just peddling data across the wire, it’s immensely easier to develop.
For those who have been following Python web frameworks, you might remember that Woven and now Nevow have both offered a LivePage feature which does exactly this. It does more, in fact, allowing you to easily call the client side from the server whenever you want, and not based on an explicit request.
Subway might help, but for anyone who has read Seth Godin’s Purple Cow aiming to be “similar to Ruby on Rails” is not a likely way to gain mindshare. To be sure, Subway will help people who want to quickly put together a Python webapp, but don’t expect it to heavily increase interest in Python web development the way Rails has for Ruby. To do that, there would need to be startingly cool new features.
In one sense, Rails had it easy marketing-wise, because web development in Java is a pain in the butt. To outdo a dynamic system like Rails is more difficult.
Of course, I don’t need convincing, because I’m already a Python user. But, as far as convincing other people go, Python does have some advantages: Python apps can be nicely packaged up as Windows exes and Mac apps, generic functions are an important feature for certain types of problems, and Python is already entrenched in a number of places.
The title of this post is a bit over-the-top, I know. There is plenty of room for a variety of successful tools. But, successful marketing, more than anything else, has made Rails what it is today.