The future of Java

The apocalypse is over, now what's next for the behemoth programming language?

Founder, robot with feelings. From planet Aiur.

πŸ“– Table of contents

Answer questions instantly

Build beautiful documentation portals that answer questions for your users, developers or team.

Imagine it's 1995. Python is 5 years old but feels like a toy, COBOL is showing its age, functional languages like OCaml and Haskell feel like they are in full R&D mode, so C and C++ rule supreme. A deep sentiment of settlement is hovering over the industry of software development.

Then Sun Microsystems releases Java, and takes the world by storm. Let's analyze how it got its popularity and maybe this way we can predict where it's going.


Write once, run everywhere

The biggest promise Java brought, was made possible by what at that time was an absolute innovation. An intermediary representation called bytecode would run in a virtual machine (JVM) that would abstract operating system interaction, so developers would obtain platform independence. Not sure if right away, but Java delivered big time on this promise.


Object oriented programming

Once seen as a good programming paradigm, OOP was taken to the Moon by Smalltalk, and then to Mars by C++ and Java. It's a charming concept, because it promises modularity. And charmed we were, some still are.


Automatic memory management

In times when the only serious challenges were C and C++, Java promised and delivered on garbage collection. You would never deallocate memory again. Beginners would rejoice because never again they would be able to ruin a whole system with their memory management naivety.



Soon after the static Web 1.0 boon, browsers wanted to include Java to allow developers to create more dynamic applications. Turned out to be a failure, but anyway Java saw a big rise in popularity.



After becoming the go-to language for enterprise-level system development, Java 5 was released and introduced Generics, a way to parameterize functions and classes with types.


Java Enterprise Edition

To solidify its position in the enterprise world, Sun/Oracle introduced Java EE, some additional APIs that were meant to standardize everything from dependency injection to data access to messaging systems to RPC.


Spring Framework

Because JEE was hard to configure and hard to use, frameworks popped up all over the place, and the highest ranking one is Spring Framework. With an opinionated take on how to wire-up different parts of your application, Spring easily overtook JEE in popularity, and hasn't taken the foot off the gas ever since. Really felt like spring after a dark long winter. Spring Boot specifically, makes a delight out of the experience of starting a new project.



With the crazy popularity and long term stability, serious work was being done under the hood to tweak the performance of the JVM, and it became one of the fastest languages, even competing with C and C++ in some domains.


Java 7, 8

Saying these periods were dark ages for Java wouldn't be too far off from the truth. Languages like C#, Go, PHP and JavaScript/Node.js have been eating at the market share of Java, each coming with a unique perspective and take on how to build backend systems. Despite this, Java's popularity maintained because Android would become huge in the mobile world, and Android apps are Java based.


Java 9, 10, 11 and 12

The rennaissance of Java is coming. The language's architects are starting to pick up language features from left and right. Java 8 borrows from functional languages and has first class functions, even though you still can't declare standalone functions. Modules came in Java 9, and local type inference will arrive in Java 11. Late, but better than never. There are plans to introduce pattern matching as found in OCaml and Haskell which would be a great expressivity feature. If they introduce non-nullable types in the future, Java would have an OK type system, and its huge ecosystem would become even better.



As Oracle kept investing in Java's ecosystem, they created Graal. Graal is a polyglot VM which brings huge benefits. You can run almost every major language on it, and the most important, AOT compilation. Meaning you would get optimized executables like you would get from Go. This is a great way to get Java into the top position for cloud infrastructure technology.

As a conclusion, Java's future is bright. It is not there yet in terms of modern features, but it seems like it won't be long. Any novice/experienced programmer would benefit from learning it, as jobs are at an all-time high, and many production systems are written in Java. The ecosystem is huge, performance is great, developer experience is improving constantly.


How can Archbee help with Java based systems?

Archbee provides an easy to adopt solution for documentation that is specifically tailored to software development teams. We've studied many teams and their workflows, we've identified common usecases and coded them into our software's DNA. When your team picks Archbee, you are guaranteed to see upsides like team happiness, synergy and productivity within less than 3 months of using our product.

Frequently Asked Questions

What is the main promise of Java regarding platform independence?
Expand FAQ
Java brought the promise of writing the code once and running it everywhere. This was made possible by an intermediary representation called bytecode that would run in a Java Virtual Machine (JVM) and abstract away operating system interactions.
Why was Java considered a good programming paradigm?
Expand Button
Java contributed to the popularity of Object-Oriented Programming (OOP), a paradigm which values modularity. Java, taking after Smalltalk and C++, took OOP to a whole new level of popularity and acceptance.
What significant feature did Java introduce related to Memory Management?
Expand Button
Java introduced automatic memory management, freeing the developer from the need to manually deallocate memory. This was a big advantage, particularly for beginners, preventing them from accidentally causing system-wide issues due to mishandling of memory.
How did Java maintain its popularity despite competition from other languages?
Expand Button
Java maintained its popularity as it continued to evolve, adding features like Generics, Java Enterprise Edition, and Spring Framework. Despite the competition from languages like C#, Go, PHP and JavaScript/Node.js, Java also gained popularity due to its use in Android app development.
What is the role of Graal in the Java ecosystem?
Expand Button
Graal, created by Oracle, is a polyglot virtual machine (VM) that can run almost all major languages. It offers significant benefits like Ahead-of-Time (AOT) compilation, enabling Java to compete for the top spot in cloud infrastructure technology.


Knowledge Management