Java is Still King
It’s remarkable that Java is still king in 2019. It’s been roughly 20 years now and the language we mostly love is clearly not going anywhere.
We’re certainly in the midst of a great transformation in enterprise software right now. And the Java ecosystem continues to evolve and embrace the changing landscape thus ensuring its continued viability. I’m referring to the transition to Cloud Native architectures that take advantage of the robust cloud computing platforms.
The TIOBE Index
The TIOBE Index will likely be familiar to many. Its primary purpose is to track the popularity of programming languages. Their methodology is listed in detail here: TIOBE Programming Community Index Definition.
Java once again retains its spot atop the leader board in November 2019. Java’s precursor, the C programming language, is as usual nipping at Java’s heels. In fact Java and C have occupied the top two spots in the Index for the vast majority of its existence.
It comes as no surprise that Java is still king to anyone who’s worked in enterprise software. The TIOBE Index just confirms what we already knew. It is however reassuring to have metrics like this to verify that our main programming language will be in high demand for the foreseeable future.
Java’s singular dominance has come and gone over the years. It would not be surprising if Python were to eventually challenge Java for the top spot. Though the continuing evolution of the Java space reassures us that we likely won’t see a dramatic plunge in popularity for a long, long time.
Java’s Evolution
Java has evolved significantly over the past 20+ years. So much so that if we unfroze a cave woman Java programmer from 1996, she’d be agog at the current incarnation of Java.
We can imagine her being highly confused about the magic of annotations or the barking IDEs when she attempted to use raw types. She may well just club the computer to smithereens in frustration.
Some of the most notable changes in Java include version 1.1 giving us inner classes. The Java 5 update delivered annotations, generics, and for-each loops. Java 8 offered us streams and lambda expressions.
There have been countless other improvements and features added along the way. The sheer enormity of the Java community has been invaluable in continuing to keep the language strong and viable. Both of which are critical when it comes to choosing a technology to deploy in the enterprise where missteps can be very costly.
The Frameworks
It’s hard to imagine Java becoming so popular without our favorite frameworks. Whether Spring, Hibernate, or one of the countless Apache Foundation projects, we stand on the shoulders of giants when we write Java code for the enterprise in 2019.
The latest disruption to our industry is the transition to Cloud Native development. By this point, most of us will have implemented this new paradigm or at least started learning it. And how are we building 12 Factor Apps? Using frameworks, of course.
The Spring ecosystem and Spring Boot in particular are dominating the enterprise implementations of the Cloud Native paradigm. At least this is what I’m seeing both locally here in the Twin Cities in addition to my extended network at major corporations throughout the US and worldwide.
Likewise, there are other frameworks in this space such as Micronaut and Quarkus that are worth keeping an eye on as well. You don’t even need the absurd 10 Years of Quarkus experience to do so either.
In short, we have a vast number of production grade frameworks available to us as Java aficionados. And the numbers and quality of the frameworks are only increasing and improving. This is another big reason why Java is still king and is likely to remain so for some time.
Summary
Java has dominated the TIOBE Index for most of the last 20 years. This popularity has been especially salient in the enterprise software world.
Java has continued to evolve since JDK 1.0 was released in 1996. While this evolution has been occasionally disruptive, it’s ultimately made the language and platform more robust.
This is proven out by the fact that enterprise customers continue to confidently deploy large numbers of new applications written in Java.
Java’s rise has been well supported by a large number of frameworks. These frameworks have provided the scaffolding for Java’s widespread adoption. Many have done this by baking in enterprise patterns and making it much easier for developers to solve common problems.