To blog Previous post | Next post
Most popular Java environments in 2014
“Do we really need to support this ancient SPARC box?”. This question or, rather, the look on the face of the engineer asking this was the trigger behind the post. During the past month, our infrastructure engineers were laying the groundwork for the improved build solution and some elements refused to play along. One of those ill-behaving build platforms being the aforementioned SPARC running our Solaris builds.
As it was more than a year since we last analyzed the popularity of different Java environments, we thought it was time to take a look at the numbers again. This gave material for this post, serving as an excellent example of the current Java infrastructure landscape. And even better – the insight for some decisions one needs to make when choosing supported platforms.
The data is gathered from 823 different Plumbr installations during February, March and April 2014. The data was reported by the System.getProperty() calls with os.arch, os.version, java.version etc.
Most popular operating systems
First segmentation we applied was based on the OS family. The numbers were not too surprising – 56% of the user base was launching the JVM on Windows, 33% on Linux and 11% were using Mac OS X. Plus the section that was barely visible – less than 0,5% of Solaris users. Comparing the results with last year, the biggest difference we see is the Linux share increasing by more than 8%. So has Linux deployment base increased by 8% in a year? The more likely cause for this is the fact that our product is more mature and is thus more often used in production environments.
When we drill down into the OS families, we can also spot interesting changes compared to a year ago. Windows 7 is still in the lead with 69% of the Windows installations. But Windows 8 has picked up – 12% of the Plumbr Windows users are now running on Windows 8, up from a mere 1% a year ago. And Windows XP is finally starting to leave the stage – down to under 5% comparing to 13% a year ago. But still, 5% of the Plumbr installations are running on an OS released 13 years ago. Go figure.
Most popular Java version
Next interesting segmentation is based on the Java version. Here we faced the biggest shift compared to a year ago. When we looked at the data in our 2013 analysis, Java 6 was leading the pack with 70% of the installations using some version of Java 6.
Now the picture has changed dramatically. Java 7 adoption has gone up from 29% to 61%. And what makes us extremely happy is the section of the chart you can only barely see. Just three guys on Java 5. Finally the old is making room for the new – 2.5% of our users were already running on Java 8.
Most popular JVM vendor
For those who might wonder about the JVM vendor difference – the Java landscape is actually a lot more than just Oracle releasing new Hotspot versions. Almighty Oracle itself has a second (not actively developed) JVM called jRockit. Plus, there are other players, such as IBM and OpenJDK initiative on the field. Not to mention some completely different beasts such as Zing from Azul.
The data looks completely different compared to last year. Mostly due to the different segments we decided to use: we decided to aggregate all hotspot releases to single segment and not list Apple as JVM vendor as in reality Apple is bundling a 3rd party JVM nowadays.
But the picture is interesting nevertheless. The most significant information is not even in the picture – there were exactly ZERO IBM Java users during the last three months. Around 1% of the users were still hanging on to jRockit, but other than that and the experimental Dynamic Code JVM, it is clear: there are just two JVMs out there, Hotspot and OpenJDK. Everything else is on the way out.
Applying this data in practice
What is the use for such analysis, besides being an interesting insight? It proved to be extremely valuable insight for Plumbr, allowing us to make decisions about what environments we need to support and what can be left out.
Looking at the numbers the decisions for the support matrix were relatively easy to make:
- Solaris. All this hard work and maintenance of the ancient hardware to support SPARC is now officially being called waste. The platform is just so rarely used that we cannot justify the costs supporting it. So no more Solaris – the last Plumbr officially supported on Solaris is our 3.7.1 release.
- Windows XP. The smile on the face of the guy pulling the plug on the XP build was priceless. Plumbr 3.8 will be the last version of Plumbr officially supporting this 13-year old platform.
- Windows 8: Out goes the old and in comes the new – from 4.0 we are adding Windows 8 to our build matrix.
- Java 5. Three users representing 0,36% of the total were running on Java 5. Comparing to last year where we had a bit more than 1% of the users still on Java 5, we now finally had the guts to call Java 5 a dead platform and cut our support. Last Plumbr version to support Java 5 was 3.7
- Java 8. As opposed to last year where we had one crazy early adopter running Plumbr on an early access build, we now had 22 users launching Plumbr on Java 8. A clear sign that the adoption is picking up speed, so already with the 3.8 release we ship a partially Java 8-compliant Plumbr; full support is expected in our next release in June.
- IBM JVM. No (zero, zilch, nada) IBM Java users during three months. So, off you go from our list of supported environments – the last Plumbr version officially supporting IBM Java was 3.7.
- OpenJDK: This is now the part where the analysis proved to be most valuable, exposing the biggest gap between the actual consumption and our test matrix. The first Plumbr version officially supporting OpenJDK is 3.8, where we now build the release using several OpenJDK versions.
So we definitely learned a lot from the insight to the Java platform popularity contest. The detailed analysis on application servers is still on the making, so if you are interested in finding out how Tomcat compares to Weblogic or Glassfish, you might be interested in following us on Twitter or subscribing to the RSS feed.