How is Java Doing?
Written by Nikos Vaggalis   
Wednesday, 18 December 2019

At this time of year surveys summing up the year bombard us from all sides. Here we have Baeldung's take on the state of Java In 2019.

Java continues on, despite being heralded as the 'old horse' of the programming language collective.

It is still at number one in the Tiobe Index, is fighting with Javascript and Python for second place on both PYPL and RedMonk, and is third as the most popular language on GitHub by repository contributors (according to GitHub Octoverse).

It's that timelessness that means that Udacity, which mostly specializes in trendy languages, frameworks and topics such as Kotlin, React, Data Science, Android, AI and Autonomous Vehicles acknowledges the need for a Java Developer Nanodegree, as we outlined in Enrollment Open for New Java Developer Nanodegree where we reported that:

Java has always been the favorite - enterprises talked and still talk Java. Look no further than the Fortune 500 list of companies reliance on it. Yes, Blue Chips love it.

The reasons are plenty. The one that enterprises value most is backwards compatibility, being notoriously allergic to radical updates and upgrades. Systems that worked 20 years ago, written in Java 5, should be able to compile and run under version 8. Stability is what matters.

Baeldung e-learning, a site totally dedicated to Java with courses and books mostly on Spring but closely monitoring the trends around everything about Java, has published its own survey - The State of Java in 2019 reflecting the view of 6707 developers.The pool of respondents might be small in comparison to other surveys, but keep in mind that this is a focused and experienced audience which knows what to looks for.

The first topic the survey tackles is Java's version adoption. With a much faster release cycle after version 8, almost by now touching version 14, you would expect that most would have migrated to a more recent version. This is not what actually happens though. As the survey highlights.80% of the developers taken the survey are still on venerable version 8!

This could be for a few reasons. First, Java's 8 groundbreaking language features (See my Closures and Lambdas book review) are still being assimilated by the programming community. Look at how many Stream and Optional related questions still circulate around the web as of 2019. Such is this December's Guide To Java 8 Optional by Baeldung itself.

Second, the new module system fist endorsed by Java 9 has confused and terrified people rather than making their life easier. Third, features that were introduced in later Java versions do not seem compelling enough to justify the jump.

Finally another big turnoff and yet another confusion was that after this past January, Java SE 8 public updates and thereafter require a commercial license. And this is where Oracle JDK vs OpenJDK battle begins, as described in our Is Java Still Free? news item:

With the recent changes to Oracle JDK distribution and support, there’s been considerable uncertainty over the rights to use Oracle JDK vs Oracle's OpenJDK builds vs OpenJDK builds from other providers. There are also plans around free updates, and (new and existing) paid support models available from various vendors to consider.

The survey also has results pertaining to other areas.

Framework Adoption
Here the landscape is dominated by Spring, the lightweight framework for modern Java-based enterprise applications against the traditional and obese Java EE.Spring Boot's adoption is high as well.

Build Tools Adoption
The results suggest Maven first with a lot of difference from second Gradle.This goes to show that Gradle is still synonymous with Android and will require a lot more effort to escape these confinements in order to be considered a viable alternative for general practice Java builds.

IDE Adoption
Traditional Eclipse still going strong after so many years and has a share of 32.8%, down from last year's 38%. However, IntelliJ with almost 60% occupies first place. But what's so special about IntelliJ? Andrey Cheptsov writing on the JetBrains Blog points to two vital features:

Completion:

When you’re writing code, IntelliJ IDEA is busy with building its syntax tree, creating references between classes, variables, fields, methods, and their usages, analyzing the execution flow, and using this information, it can provide completion, help you quickly navigate through your code, provide error analysis and offer handy quick fixes. 

Refactoring:

The nice side-effect of having the code syntax trees and their relationships indexed is that it makes IntelliJ IDEA able to manipulate these trees to apply complicated refactorings across many languages, expressions, and dialects.

Couple these with Ergonomics and you can easily see why it is favored by most Java devs,hence the Intelli-gence part in its name.

Web/Application Server Adoption
Back in 2011 Mike Gualtieri VP, Principal Analyst at Forrester, had written a prophetic and timeless article called Stop Wasting Money On WebLogic, WebSphere, And JBoss Application Servers

He began with :

Use Apache Tomcat. It is free.

I don’t understand why firms spend millions of dollars on Java application servers like Oracle Weblogic or IBM WebSphere Application Server. I get why firms spend money on Red Hat JBoss — they want to spend less on application servers. But, why spend anything at all? Apache Tomcat will satisfy the deployment requirements of most Java web applications.

The chart reflects that statement; Tomcat  is the undisputed champion with Jetty and its light resource consuming footprint on its tracks.The heavyweight propositions' positioning on the league table echo their age and anachronistic requirements.

I had my own adventure with WebLogic which I describe in Hardcore DevOps: Building A Portable Weblogic Client on the CLI.

Other JVM Languages

First, what's somewhat surprising and interesting here is that 62.6% of developers are only using Java, exactly like last year (62.8%). I was definitely expecting this number to go down, given the strong adoption of Kotlin, but it looks like it hasn't, yet.That being said, Kotlin did still grow from 13% last year to 16.5% today

As Gradle, Kotlin which can be perfectly usable as a general purpose language and especially in backend environments can't still be accepted outside Android's boundaries.

Databases
MySQL and PostgreSQL are the first two, OracleDB comes third, MongoDB and MS SQL fourth and fifth. There are two trends of note here. In agreement with the Percona's DBMS Popularity Survey, relational DBMS's outdo NoSQL while Open Source DBMSs do better their big name commercial counterparts. Again like on the WebServer front, people look for the more lightweight equivalents, especially PostgreSQL.

In conclusion, I think what the survey is trying to say is that Java is not to be displaced. It will remain in the top three in any league for years to come, backed by the exemplary loyalty of its programming community. But although people still stick to the language and its surrounding ecosystem, they also try to stay away from Oracle and its offerings be it its IDEs (JDeveloper), Servers (WebLogic), JDKs and its flagship database. MySQL is the exception because it mostly remains unaffected by Oracle's ownership.  Most Java users are looking for more lightweight, efficient, cheaper, developer and license friendly equivalents that are at par or even better than those of Oracle's.

More Information

The State of Java in 2019
 

Related Articles

Enrollment Open for New Java Developer Nanodegree

Closures and Lambdas book review

Is Java Still Free?

Hardcore DevOps: Building A Portable Weblogic Client on the CLI.

Percona's DBMS Popularity Survey

JVM Ecosystem Report Reveals the State of Java

Exposing The Most Frequent Mistakes In Programming

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


Linkerd Adds Egress And Rate Limiting
05/12/2024

Linkerd has announced a new version of its service mesh. It adds three major new features: egress traffic visibility and control; per-service rate limiting; and federated services.



Swimm Releases Copilot Extension For Documentation
03/12/2024

Swimm, best known for its AI-driven software documentation tools, has announced an extension for GitHub Copilot. The Swimm team says the extension means developers using GitHub Copilot Chat can turn C [ ... ]


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Wednesday, 18 December 2019 )