Try and try again
Facebook would hardly be the first high-traffic website to attempt a major technology upgrade late into its life. In fact, a two-stage rollout has become something of a tradition among Web startups. The list of sites that have undergone a major technical revamp after launch reads like a veritable who's who of the Web's biggest names.
Remember when Twitter sounded like a silly idea? Its founders must have been skeptical at first, too, which may have been why they chose to build the site using the Ruby on Rails framework. Rails is known for its fast development times; according to O'Reilly Media's Tim O'Reilly, "Powerful Web applications that formerly might have taken weeks or months to develop can be produced in a matter of days."
As Twitter's user base grew, however, it must have soon become evident that a few days' coding wasn't going to cut it. In 2009, Twitter engineers announced that the company had begun migrating key systems from Ruby to Scala, a language that runs on the Java virtual machine (JVM), as a way around bottlenecks in the Ruby runtime environment. Today, Twitter still uses a mix of Ruby and Scala, but the effort to migrate performance-sensitive systems to the JVM continues (search being the most recent candidate).
Even before Ruby on Rails, developers were building sites using other Web frameworks designed for rapid application development. Remember ColdFusion? Now an Adobe product, the venerable platform doesn't get much truck with developers these days, but in 2003 it allowed a small group of colleagues to develop a social networking competitor to Friendster in just 10 days. The name of their site: MySpace.
MySpace's user base exploded, and in 2005 the social network and its parent company were acquired by Rupert Murdoch's News Corp. for $580 million. That same year, with its back-end servers buckling under the weight of its newfound popularity, the company began transitioning its systems from ColdFusion to .Net, with help from New Atlanta Communications' BlueDragon migration tool.
Start small but stay agile
Imagine how much time, money, and effort could have been saved had Facebook hitched its fortunes to an enterprise-class database instead of MySQL, or if Twitter or MySpace had built their services using Java or .Net to begin with, rather than bumbling around with Ruby on Rails or ColdFusion. But of course, that's all hindsight. The truth is, there are plenty of good reasons to launch a site using the tools you have available at the moment, even if it means you'll have to rewrite most of your code later.