The future of Java

Dragos
Dragos
Founder, robot with feelings. From planet Aiur.

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

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.

Applets

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.

Generics

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.

Performance

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.

Graal

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 innovation did Java bring to the industry?
Expand FAQ
Java introduced an intermediary representation called bytecode that would run in a virtual machine (JVM). This abstracted operating system interaction and provided platform independence. It also promised and delivered on garbage collection, eliminating the need for developers to manually deallocate memory.
What were some significant contributions of Java to enterprise-level system development?
Expand Button
Java became the choice language for enterprise-level system development following the introduction of Generics, and the Java Enterprise Edition (Java EE). Java EE provided additional APIs meant to standardize everything from dependency injection to data access to messaging systems to RPC. Also, the Spring Framework that emerged as a more user-friendly alternative to Java EE pushed the popularity of Java even further.
How was Java's usage affected with the introduction of new programming languages?
Expand Button
Even though languages like C#, Go, PHP, and JavaScript/Node.js started gaining popularity, Java remained popular as Android, which relies heavily on Java, became huge in the mobile world.
What improvements have been made in recent versions of Java?
Expand Button
Java has been adopting features from various languages. Java 8 features first class functions, Java 9 introduced modules, and local type inference will arrive in Java 11. There are plans to introduce pattern matching and possibly non-nullable types in the future.
How can Archbee be beneficial for Java-based systems?
Expand Button
Archbee provides an easy-to-adopt solution for documentation, specifically tailored to software development teams. Using Archbee can lead to improved team happiness, synergy, and productivity within less than 3 months.

📖 Table of contents

Answer questions instantly

Create and share documentation that answers questions instantly with Gen AI

Discover Archbee

Read more in

Knowledge Management