Blame it on the Russians. Wired's Cade Metz has an interesting account of how a visit to Twitter headquarters by Russian President Dmitry Medvedev three years ago led to a series of events that recently culminated in the social network's relaunch — written in Java.
When the Russian president came calling in 2010, uptime was a real concern, and Twitter's management was worried that the system may not stay up during this big moment. So Twitter's engineers built a separate staging server, just for the occasion — to keep the fail whale away from Medvedev. It was one of those "a-ha" moments that sent Twitter's engineers looking for a language with more industrial strength than the current system, written in Ruby:
Twitter's engineers came to realize that Ruby wasn't the best way to juggle tweets from millions of people across the globe — and make sure the site could stay up during its headline moment with the president of Russia. The best way was a brand new architecture based on Java, a programming tool that has grown more powerful than many expected.
Indeed, while many development shops moved away from Java in favor of more lightweight, faster-to-deploy open-source and scripting languages, there appears to be a growing recognition that more resiliency is needed. "Like Twitter, many other companies have realized that Java is particularly well suited to building web services that can stand up to the massive amounts of traffic streaming across the modern internet," Metz observed.
The story here is that many of the hot social web properties have determined that Java — and, by extension, Java Virtual Machine — may have what it takes to support millions upon millions of daily transactions.
However, in the everyday enterprise, Java has been a part of applications and systems for years, and never really went anywhere. While many developers found open-source and scripting languages easier to work with and faster to deploy for many apps, Java has just kept chugging away at the core. Java's ultimate advantage is that the JVM container will run anywhere.
In a survey of 376 employers I helped conduct two years ago in cooperation with the SHARE user group, IBM and Northern Illinois University (as part of my work with Unisphere Research/Information Today Inc), we found the number one programming language skill sought was Java. (The executive is summary available from the SHARE website.) The chart below shows the languages in demand among enterprises:
For the most part, Java has remained a presence in enterprises. And now the hot companies of the 2000s and '10s are discovering it as well.