Ruby on Rails made a specific promise when it showed up a few years back: skip the boilerplate, follow the conventions, and a small team can build something that would have taken a much bigger team on the older frameworks. For a lot of startups that promise held. 37signals built its whole product line on it and has been happy to say so loudly and often.
Then Twitter happened, and Twitter is Rails’ problem now whether that is a fair way to think about it or not.
Twitter is built on Rails, Twitter has been down or degraded often enough this year that “fail whale” is a phrase people use without needing it explained, and the narrative that has calcified around it is simple: Rails does not scale. I think that narrative is mostly wrong and I think it is going to stick anyway, because a framework’s reputation gets set by whichever high-profile app breaks in public, not by the hundred smaller apps quietly running fine.
The more accurate version, from what I can piece together, is that Twitter’s problems are mostly about their database and their architecture choices around it rather than anything specific to Rails itself. A framework optimized for developer productivity on day one does not automatically hand you a scaling strategy for day one thousand, and that gap is an application problem, not a Ruby problem. But nuance does not travel as fast as a screenshot of an error whale.
Django is watching all of this from a more cautious distance. It has been building toward a proper 1.0 release for years now rather than rushing one out, and the project’s whole personality is a little more deliberate, a little more “we’ll ship it when it’s stable” than Rails’ “convention over configuration, move fast.” I do not think that caution is an accident given what they have watched happen to the competition’s poster child this year.
Whether that carefulness turns into an actual adoption advantage once 1.0 finally lands, I do not know yet, not with any confidence. What I do know is that the framework choice conversation at every startup I talk to now includes a sentence about scaling that did not used to be there, and that sentence exists because of one company’s public outages, not because of anything wrong with the code most people are actually shipping.