The Java language project was initiated by Sun Microsystem engineers James Gosling, Mike Sherida and Patrick Naughton in 1991. The original plan was to create a language that could be used for small, embedded systems in electronic devices like set-top boxes. They ran through various different names, including Greentalk and Oak, before finally landing on Java, the small Indonesian island where coffee was first produced. In fact, Gosling came up with the name while drinking a cup of coffee near his office.
Since its release in 1995, Java has proven itself to be one of the most popular programming languages in the world. It was designed to provide a more portable and interactive way to develop modern multimedia applications. And now, the platform-independent language, which offers thousands of libraries and is well-supported by all major systems, is used across almost every major industry and business sector.
What sets Java apart?
Java was a revolutionary language – reinventing the way coding languages work. In other languages, a compiler first translates the code into instructions for a specific type of computer. However, the Java compiler instead converts the code into a bytecode, which is interpreted by a piece of software called the Java Runtime Environment (JRE), or the Java virtual machine (JVM). This acts like a virtual computer that then interprets and translates the bytecode for the host computer. This versatility has been one of the main drivers behind Java’s success, as it allows for the code to be written in the same way for a range of platforms. This was particularly useful on the early internet, where many different types of computers can access the same Web page.
Within a few years, having brought multimedia to the internet, Java had expanded beyond the internet. It was being used in consumer devices, retail and financial computers relied on it, and it had even travelled the stars as part of the onboard computer for NASA’s Mars rovers. This popularity led Sun to develop several Java variants for specific purposes – including Java SE for home computers, Java ME for embedded devices, and Java EE for internet servers and supercomputers. They also worked on Java implementations that expanded outside of Sun Microsystems, such as JRockit and IBM’s J9.
The evolution of Java
After a decade and a half of success with its Java expansion, Sun Microsystems was acquired by Oracle Corporation in 2010 which took over the management of the main Java ecosystem. Since then, the rate of Java updates has increased, from semi-annual to annual to bi-annual, the last release coming in March this year.
These updates are interspersed every few years with Long-Term Support (LTS) releases offering higher stability, security, and performance updates. While in the past LTS were expected to last for a long time, there is an increasing rate of acceptance for new versions, and last year’s Java 17 shows a change in thinking.
For two years, Java 11 has held the top spot in terms of adoption rate, however with the release of Java 17, users were treated to a far more advanced experience. New Relic’s State of Java report has found that already over 9% of applications now use Java 17 in production, a nine-fold increase from last year. While these are still small figures in comparison to the 56% of applications using Java 11 – it took Java 11 years to reach this level of usage. Java 8 is a close second with nearly 33% of applications using it in production (down from 46% in 2022). In terms of Java 7, only a small number of applications are still using it – 0.28% to be precise – which makes sense since Oracle ended support for that version in 2022 , and so most are legacies that have not yet been upgraded.
Java and Containerisation
Containerisation is incredibly popular among Java users – with 70% of Java applications using container environments, but Java was not inherently set up for containers. As such, engineering teams generally use smaller computer settings in cloud environments where they use containers frequently.
The issue is that this trend can create unexpected issues for some applications that could lead to performance issues. For example, teams working with a single CPU may not get the garbage collector they expect, even if they explicitly set it. And with such an important role in JVM performance, garbage collection is a hot topic within the Java community. Similar trends appear when comparing memory settings, and the way containers get deployed means that developers often need to be more conscious of their footprint as limits are more strictly enforced.
Java is a stalwart of the developer world and will be around for a long time. Language will continue to evolve and no matter what IT developments occur, many business applications are built using Java.