In November of last year, Forrester analyst Mike Gualtieri published the provocatively titled “Java Is A Dead-End For Enterprise App Development.” This January, the firm’s John Rymer followed up with a more balanced but similarly pessimistic “The Future of Java.” Collectively, these may be considered representative of the conventional wisdom of the enterprise.
The reality that we at RedMonk observe differs substantially, as might be predicted given our sources. What you think depends on who you listen to, remember. Forrester, as we have discussed previously [coverage], primarily concerns itself with enterprise software buyers and “platform software decision-makers.” RedMonk, meanwhile, is oriented around practitioners; practitioners like those attending FOSDEM, for example. We advantage this audience simply because we believe that bottom up adoption is more predictive of technology direction than top down procurement, but reasonable minds may obviously disagree.
The original rise of Java has been well chronicled, so it needs not be repeated here. The fall is perhaps less well understood.
The Fall of Java
Java, both the language and the platform, have largely stagnated the past few years. Some of this was the inevitable result of a decade plus developmental cycle, but the decline and subsequent acquisition of Sun further stalled progress. As have a variety of other factors, such as the historically contentious ineffectiveness of the JCP, the developmental tension of managing large enterprise demands against developer accessibility, and the sheer diversity of platform deployment.
Perhaps the biggest black eye for Java from a developer perspective has been the refusal of first Sun and then Oracle to grant Apache a TCK for Java SE over field of use restrictions [coverage]. The end result of this process – the December departure of the ASF from the JCP Executive Committee – was a blow to open source developer perceptions of Java broadly and an indictment of Oracle’s stewardship.
External factors have also played their part. The litigation of Google by Oracle over Java related copyrights and patents has had a chilling effect on Java as developers try to understand Oracle’s ultimate ambitions. According to RedMonk Analytics, Oracle’s litigation was the 12th most searched for topic by developers during the 2010 calendar year.
Finally, there’s the problem of context. In the middle of the last decade, Java was one of two dominant software ecosystems for enterprise software development, with Microsoft providing the primary alternative. While development was never quite as homogeneously Java or .NET as CIOs believed – PHP, in particular, was everywhere – Java enjoyed a relative popularity that it is not likely to ever see again. The developmental landscape has shifted, and the trend is away from general purpose platforms towards more specialized alternatives [coverage]. This means that where once fewer languages were more popular, today more languages are less popular on a relative basis. We see sanctioned usage – even in the enterprise – of dynamic languages like Perl, PHP, Python, Ruby, tactical usage of things like Clojure, Erlang, and Scala, and a real surge in interest around serverside Javascript. Put more simply: the runtime market is both more diverse and more competitive than it was previously, making it more difficult for Java to dominate in the manner it is accustomed to.
On the surface, then, we seem to have validated Forrester’s version of the conventional wisdom: Java really is a “dead end.” The only problem is that the data does not support this contention.
The Rise of Java
When we at RedMonk assess technology popularity and direction, we look at a variety of metrics public and private. Generally we prefer observational data to surveys, not least because of the biases inherent to survey work. We also focus on developers over decision makers, as discussed above. We do not generate conclusions from a single dataset, because individually they are hardly gospel. In the aggregate, however, their conclusions are compelling.
Among the sources we look at is jobs data. And while Java’s performance on a stand-alone basis may seem somewhat anemic:
The inclusion of competing platforms such as Javascript, Python and Ruby offers useful perspective.
From a job growth perspective, then, Java seems relatively healthy.
Tiobe’s language popularity metrics support this claim, for in spite of a multi-year downward trajectory, Java easily leads the majority of surveyed languages with the exception of C where the gap is narrower.
You may also recall that our survey of the Hacker News dataset found surprising traction for Java in that forward looking community:
Other developer observational data such as the performance of Java across open source mailing lists indicates substantial traction along with an anomalous spike in activity in the 08-10 timeframe, one possibly associated with pre/post Sun acquisition discussion. While the 2010 plateau indicates retrenchment, it by no means is indicative of a dying platform.
But perhaps most problematic from those who would condemn Java to the history books, damning it via the faint praise of comparisons to COBOL, is the continued employment of Java in critical open source projects like Cassandra, Jenkins, Hadoop and HBase.
Even as the rapid expansion of the Hadoop ecosystem permits the usage of more accessible languages like Python (Dumbo) and Ruby (Wukong), Java is the foundation upon which the entire edifice rests.
Even Android and the Damoclean sword of litigation that hangs above it are beneficial for the Java ecosystem, because they are indoctrinating thousands of developers – for better and for worse – with the convoluted syntax charateristic of that platform.
The Gist
How then might we reconcile the above data with the conclusions of the Forrester analysts and the conventional wisdom of the enterprise they represent? For my part, the answer is simple: I break with them.
According to the data at our disposal, it is apparent that on a relative basis, Java has peaked. It is not as popular as it once was, and is not likely to return to its former prominence in future. It is equally clear, however, that it is still a dominant platform, and the data we have on current usage and employment indicates that this position is sustainable moving forward.
Which means that, from our perspective, Java is anything but a dead end. But as always, it depends on who you ask.
Disclosure: Google and Oracle are not RedMonk clients, while Sun was. The Apache Software Foundation is a RedMonk client.
Thanks & Acknowledgements
My sincere thanks to Tom Marble for his invitation to speak at FOSDEM; I enjoyed it immensely, and the event was aggressively well run thanks to his and others’ efforts. I’d also like to point to Simon Phipps’ writeup of the event, which is too kind in my direction. His talk was exceptional, and I highly recommend viewing if and when you have the opportunity. Lastly, I’d like to thank the Free Java hackers @ FOSDEM: I thank you for lining up for the talk, and I apologize to those of you who weren’t able to get in to the room – which was packed – for the talk. You guys are why we do what we do.
FOSDEM Slides
: