Java: Future Imperfect!

With the release of Java 22 in March 2024 now is a good time to reassess the place of Java within our ever-evolving technology world.

29-04-2024
Bcorp Logo


If you were to believe all you read online, then Java is dead, dying or at least terminally ill. Various articles have predicted the death of Java over recent years and yet – is that true?

Where is Java Now?

If we look at just three of the most commonly used programming language popularity indexes Java is still up there – true it may no longer be number one, but it’s still in the top 7 of them all. For example, the StackOverflow Developer Survey of 2023 has Java at 7th for Professional Developers and 5th for those learning to program, the PYPL (Popularity of Programming Language) survey of April 2024 has Java at number 2 with 16.04% share of the market which is nearly double the language in position 3 (although it is down 0.1% on a year ago) and some 12.39% below Python in top spot. Finally, the TIOBE index for March 2024 had Java in position 4 down one position on a year ago.

So, what can be glean from all that; Java is no longer the King (or Queen) of the popularity stakes in the programming world; that crown has been taken by Python which is number one in two of the three indexes. However, being in positions 2, 4 and 7; for a language first released in 1995 that is still quiet an achievement.

However, we need to be a little bit careful about these indexes; the PyPL explicitly calls itself a popularity index and StackOverflow relates to the language developers like; what about programming languages in terms of industry demand?

If we consider the statista programming languages by demand index we find that Java is at number 3 with 42.54 of the market share for languages by recruiters worldwide in 2023. Number one is JavaScript with 52.93%. A similar pattern is echoed by thew devjobsscanner site which has Java at number 3 behind JavaScript and Python Both Java and Python are near or around 20% of the market in this index with Python just a fraction ahead). So, from a commercial world, in demand, perspective Java is second only to python.

This seems to be a pretty positive outlook for Java developers considering the predicted demise of the language!

But what about the future? What might happen with respect to Java and the recent technology and programming language trends over the next few years?

Of course, this is exactly the question that all technologists would like to be able to answer using their crystal ball app; and nothing is certain but there are a few things we can see right now and consider how Java fits in with (or not) these trends; such as AI, Big Data, Cloud Based Computing and Serverless Computing etc.

The role of Java in our ever-evolving technology world


AI and Java

You can’t miss the rapid growth in systems labelled A|I over the last couple of years. Ai is everywhere now. But what programming languages are actually being used to build these AI systems. Back in the early days of AI the most common programming languages where those based on LISP (or one of its derivatives such as CLOS (Common Lisp Object System) and Prolog. However, even back in the 1980s there were Expert Systems being built with more main stream programming languages such as ASPES using Pascal.

Today a number of programming languages are commonly used to build AI based systems including the ubiquitous Python. However, Java is also a language used to create AI systems, particularly those used within corporation or large organisations. Indeed, there are several Java specific libraries or Java interfaces to libraries which allow an AI system to be created using Java, for example:

  • TensorFlow – one of the most widely used libraries of various AI and machine learning tools.
  • DJL - Deep Java Library - supports deep learning abilities in Java.
  • Apache OpenNLP - a natural language processing library.
  • Java Machine Learning Library - a library of machine learning algorithms and related datasets.
  • Neuroph a toolkit for creating neural networks.

In fact, several cites listing important languages to learn if you want to work in AI list Java as the second or third most important language (behind Python). For example see Springboard and Cointelegraph.

So if AI is going to be big in the next decade, and most pundits think it will, Java looks set to be a significant presence in that world.

The role of Java in our ever-evolving technology world


Big Data and Java

Analysing data is big business; analysing big data is even bigger business! Big Data analysis often involves analysing very large amounts of data to extract knowledge and understanding from that data. Many programming languages are used for Big Data including Python. However, Java has a significant place within the enterprise, and it is therefore not surprising that Java has also found a place amongst the Big Data tools.

At the start of 2024 LinkedIn performed analysis of Java and its relationship to Big Data and concluded “Java provides a robust, scalable and secure platform for big Data analysis”. There are a range of frameworks and toolsets that can be used with Java for Big Data including:

  • Apache Hadoop provides for distributed storage and processing of large datasets.
  • Apache Spark supports real-time data analytics and machine learning.
  • ElasticSearch a distributed search and analytics engine.
  • DeepLearning4J useful for incorporating deep learning into data analysis.

The role of Java in our ever-evolving technology world


Cloud Based Computing and Java

The Cloud and Java are like salt and pepper or fish and chips; you can have one with out the other, but just as chips are nice on their own but even better with fish; Java and the cloud complement each other perfectly. Of course Java is not the only programming language which has a natural fit with cloud computing platforms; but given its enterprise focus it is a particularly good one.

There are several benefits when using Java in the cloud including:

  • Platform independence of Java which means that you can run your application on any cloud platform with a JVM available for it; from Linux, to Windows to macOS etc.
  • Java’s building in security model such as bytecode verification and access control mechanisms provide a secure environment for developing cloud-based applications,
  • Java’s ecosystem of libraries and framework support a wide range of access techniques and functionality which provides flexibility within cloud-based applications. For example, Spring Boot, Quarkus and Micronaut are all worth considering.

For Java, a cloud-based environment has the benefits of

  • Scalability, the ability of a cloud-based application to be replicated across servers with the cloud well suits Java’s execution model.
  • Containerization. Java works very well with container frameworks such as Docker partly due to the use of the JVM and its library of frameworks.
  • Load balancing facilities within the cloud can help to share the workload across a distributed Java based application.

Java and Serverless Computing

Serverless computing differs from cloud computing in that although both abstract away the underlying hardware, cloud computing still uses the concept of a server, while serverless computing takes this abstraction further to include any containerization.

Everything that is true for Java in the cloud computing world is even more true for Java within the serverless computing arena. As serverless computing is only likely to grow in the coming years; Javas future within this platform technology will only become more important.

The evolution of the Java Language

Perhaps the most important aspect of this blog is that the Java language is evolving at a faster and faster rate; it has 6 monthly releases which allow new concepts and ideas to be explored and it has both short term and long-term support releases allowing enterprises to choose whether to try out new features or stick with tried and tested versions.

It is also apparent that Java is adopting features and concept from other, in many cases newer and traditionally more dynamic languages, including Kotlin and Go. These features while still experimental in many short-term versions can be seen maturing by the next long term support version; allowing the language to adopt and experiment without negatively affecting established applications.

This is key as without evolution the language will stagnate and probably die; but without stability organisations would not be able to rely on it for established and long-lived applications.

So what’s next for Java?

For 2024 Java is further opening up its flexibility and pace of development with plans for OpenJDK projects ranging from project Amber, that aims to help develop smaller, productivity-oriented features, to project Babylon, for extending Java to foreign programming models such as GPUs, and project Valhalla, for augmenting the Java object model with value objects to eliminate longstanding performance bottlenecks.

Summary

So is Java dead or dying? Well no it is still one of the most in demand programming languages on the planet. It may not be as popular with developers as it once was; but with Enterprises it is still right up there in the top three.

It is also one of the languages that sit are the heart of several key technologies and technology pushes that will, I am sure, only continue to develop over the next few years. Being competent in Java and familiar with concepts such as Big Data, Cloud Computing and its associated Serverless Computing as well as of course AI will be a sound platform to build any career.

If you are just starting out there are several key programming languages, you might choose to focus on from Python to JavaScript but don't discount Java; it is right there in the mix with both of these languages.


Would you like to know more?

Take a look at our full complement of Java Training Courses

    Share this post on:

    We would love to hear from you

    Get in touch

    or call us on 020 3137 3920

    Get in touch