This is the third of five predictions for 2008, expanded from the short form generated on short notice as described here.
Prediction · The short version:
Rails will continue to grow at a dizzying speed, and Ruby will in consequence inevitably become one of the top two or three strategic choices for software developers. But at the same time, other frameworks and tool-sets are learning its lessons, so Rails will get some serious competition.
I Hear a Very Gentle Sound · I don’t know anyone who’s actually doing methodologically respectable head-counts of Web developers, so any opinion from anyone is based on anecdotal evidence at best. But these days, based on my anecdotal evidence, everything I see and smell, the white-hot pace of Rails adoption isn’t slowing down at all.
Rails drags Ruby along behind it, and good programmers who are exposed to Ruby tend to become addicted pretty quickly.
[Hoisted from Comments] Joe Gregorio argues that Rails peaked in mid-2006 and is now declining. But read his comments, too.
Who’s Watching · There is one group of technologists who are now 100% familiar with Rails. I’m speaking of the developers of competitive Web frameworks, many of whom felt somewhat smacked upside the head by Rails’ sudden noisy chomp into their market share.
By and large, they’re not stupid. They may not have been as quick to notice the things that DHH and the other Railsists noticed, but they’ve noticed them now, and more or less every other piece of the Web ecosystem has something “Rails-like” in hot development or in production. Some of the names to watch are Django (based on Python), lift (based on Scala), and Grails (based on Groovy). But I predict fearlessly that there will be a Real Important Web-framework grabbing mindshare a year from now that’s learned Rails’ lessons but ain’t one of those.
I Could Be Wrong · Maybe the population of developers will wake up, shake their heads, and say “Nah, going back to PHP, it’s faster” or “Actually, now I see that Java EE’s XML configuration files are da bomb”.
But I don’t think so.
Comment feed for ongoing:
From: Ivan Sagalaev (Jan 04 2008, at 03:33)
Tim, you're wrong counting Django as a framework whose developers "may not have been as quick to notice the things that DHH and the other Railsists noticed". Django was started about the same time as Rails and just opened up a bit later. I mean Django is not a "reaction" it's a genuine product having nothing to do with Rails.
[link]
From: Stan Klimoff (Jan 04 2008, at 04:25)
> ...good programmers who are exposed to Ruby tend to become addicted pretty quickly.
Well, does that mean that those who haven't become addicted to Ruby after said exposure can't be considered a good programmer?
[link]
From: Matt (Jan 04 2008, at 04:31)
The biggest pain point I've run into with Rails (and Ruby in general for the web) is deployment. Things like Mongrel and Capistrano go a long ways towards making it simpler to get your app into production. And as long as your only managing an app or two per server, the stack isn't too cumbersome to manage. In my experience, though, I've never had a server with only one or two web apps on it. The servers I work on have dozens of small "web apps" that all serve different business functions. I think these kind of situations are extremely common but get forgotten about because they don't require a lot of code muscle to solve (and they're not cool). But this is where PHP has some serious leverage. I think Python (esp. Django with it's modular design) + mod_wsgi/mod_python is better positioned for small web apps than Ruby. But, who knows what the year will bring.
[link]
From: MikeH (Jan 04 2008, at 05:16)
Let me rephrase one of your statements:
<i>Rails drags Ruby along behind it, and good programmers who are exposed to Ruby <b>who haven't adopted a dynamic language yet</b> tend to become addicted pretty quickly.</i>
I know of no heavy Python, Perl, or Groovy user that has jumped shipped to Ruby. I know some that have written some Rails apps, but they still use their language of choice for their scripting.
Actually, if you know Python you are probably using Django or TurboGears instead of Rails. They are about the same thing, only in your favorite language.
Rails, Django, etc. have a lot way to go to get their apps to the "out of the box" apps like PHP has. Is there a Rails app that is as easy to install as WordPress, Drupal, Joomla, etc? It think those frameworks have a long way to go if they want to replace PHP (but God bless them if they do!)
[link]
From: Steph (Jan 04 2008, at 09:36)
See a more reasoned opinion here: http://bitworking.org/news/282/Tim-Bray-on-Ruby-on-Rails
[link]
From: Lennon (Jan 04 2008, at 11:43)
@Steph: What Joe Gregorio doesn't seem to allow for by citing Google and Alexa numbers as the only measure of Rails' popularity is the fact that growth in number of new search queries and growth in actual use of a framework are not the same thing.
Developers who have yet to *use* Rails (or their managers) are much more likely to search for basic information on it than those who are deploying their second or third application into production. Those with a bit more experience may be side-stepping Google entirely and going instead to bookmarked documentation, or at the very least searching for more precise phrases. I'd be curious to see the aggregate numbers for, say, the 10 most common ActiveRecord and ActionPack method names added on top of that bare query in Joe's graphs...
On a mostly-unrelated note, I have to say that while I agree that many people end up getting "stuck" to Ruby after being initially drawn to Rails, the opposite is true, as well. I know that for myself, and most likely for a number of other long-time Ruby developers who never really jumped onto the Rails bandwagon, the massive influx of inexperienced, aggressively-commercial developers into what had once been a quiet, friendly community has begun to discourage me from participating as much as I once did.
That's not to say that I think that popularity is a bad thing, but I do pine a bit for the days when the local Ruby programmers' group could all sit around a small table over pints and talk about our latest projects, instead of needing space for 40-50+ attendees, projection equipment, and corporate sponsorship for group events.
[link]
From: Nate (Jan 06 2008, at 00:39)
Or maybe, just maybe, developers will wake up and say this: http://www.zedshaw.com/rants/rails_is_a_ghetto.html
[link]
From: Mark Hughes (Jan 07 2008, at 15:11)
The best reality check is to search on Dice (or other job site):
java: 15018 jobs
c++: 7363 jobs
c#: 7017 jobs
php: 2176 jobs
python: 1233 jobs
ruby: 637 jobs
lisp: 22 jobs
objective-c: 16 jobs
haskell: 2 jobs
Java's the dominant language for solving problems that are worth paying money to solve. Nobody else is even close.
Ruby on Rails is excruciatingly slow, and requires far more hardware to scale up than other tools. Having a tool that makes it easy to get started but costs more and causes more pain down the line is not good business sense. The disaster that has been Twitter trying to scale up is going to be repeated over and over, until people quit being penny-wise and pound-foolish, and learn to invest a little in more serious technology.
This might take a while, and certainly Ruby's going to get more popular in the next year, but in the long haul I think it's headed down again, sharply.
[link]
From: John Wilson (Jan 10 2008, at 07:30)
Another datum point http://blog.dreamhost.com/2008/01/07/how-ruby-on-rails-could-be-much-better/
I have a feeling the wheels are beginning to come off.
[link]
From: ror fanboy (Jan 10 2008, at 13:15)
Tim,
They need some help with this issues, if your prediction to materialize
http://www.rubyinside.com/no-true-mod_ruby-is-damaging-rubys-viability-on-the-web-693.html
[link]