Tim Bray predicts continued explosive growth for Ruby on Rails, and Joe Gregorio counters by saying that growth in Ruby on Rails has already plateaued (as he predicted), and has some graphs to back it up.
It’s inevitable that Ruby on Rails growth will plateau, Tim gets at perhaps the biggest reason why in his post predicting continued growth. He notes that developers on other platforms are paying attention to Ruby on Rails and figuring out how to apply some of the Rails goodness to their own frameworks. As people find Rails-esque features available in platforms they’re already familiar with, they’ll be less likely to learn Ruby and migrate to Rails.
Another factor that will limit the growth of Rails is that it really is best for new projects. Every time I think about rewriting an existing application in Rails or using Rails with a database that was not designed with Rails in mind, I blanch a little bit. It’s certainly possible to do so, but in the process you give up some of the Rails features that offer the biggest productivity gains. Even in the periods of the most fervent enthusiasm for Ruby on Rails, I didn’t see a big push to rewrite things in Rails.
The third factor that will limit the growth of Rails is that it’s difficult to get multiple Rails applications to play well together, or to get Rails to play well where multiple applications live on the same host. Many Web sites are an amalgamation of applications, perhaps running on different platforms. You may have some static content, a calendar application written in PHP, a blog powered by Movable Type or WordPress, and a PHP contact form. It’s easy to add another PHP application to the mix in its own directory, or even add a Java WAR file to the mix. Unfortunately, Rails really wants to control the virtual host it’s running on. Taking an existing Web site and putting a Rails app in
/blog isn’t the easiest thing to do. It’s really a shame, because Ruby on Rails is the perfect framework for whipping up a job board, or a schedule of upcoming training events, or a customer support knowledge base.
If someone came to me today and said they’re trying to pick the technology platform for a new Web startup, I’d tell them to choose a modern framework built on a dynamic language. Django and Rails fit the bill, among others. But those types of projects are a small slice of the Web development work that’s being done these days. And it’s going to be tough for Rails to continue making inroads into the larger ecosystem, for reasons both technical and practical. The next big boost in Ruby on Rails growth will come when point #3 above is addressed and Rails deployment moves to the next level of simplicity.