Happy Birthday to Java, which turned 25 this year. I am pleased to report that the repeated rumors of its demise have been greatly exaggerated!
In fact, we at Chariot Solutions recently celebrated the anniversary of the language upon which our business was founded. With more than 64,000 companies – including Tripadvisor, Uber, and LInkedIn – still using Java for development, it remains a vital and vibrant coding language.
How is that the case when so many people assume that Java is less “modern” than newer coding languages? I think the secret to its longevity may lie in the story of its creation.
James Gosling and his team developed Java as an alternative to the popular languages of the time: C, C++, COBOL, and Fortran. Their guiding vision to “write once, run anywhere” was supported by five basic principles:
- It must be simple, object-oriented, and familiar.
- It must be robust and secure.
- It must be architecture-neutral and portable.
- It must execute with high performance.
- It must be interpreted, threaded, and dynamic.
With this foundation, Java evolved as a powerful language that remains relevant today. The vast number of companies using it means there are many developers familiar with it – making it easier to staff projects and cooperate on projects.
Similarly, a majority of colleges and universities’ computer science courses teach Java. This means the next generation of software engineers will continue to have Java at the core of their coding skills.
And Java holds a number of design and technical advantages that will support its continued relevance. In accordance with the third design principle that “it must be architecture neutral and portable”, Java was built to run on a “fake computer” known as the Java Virtual Machine (JVM). This is a big deal because it means that the code you write is not specific to the type of server or hardware. Put another way: “write once, run anywhere.”
Another technical advantage of Java is its ability to be backwards compatible. As opposed to an iPhone whose new processing power and graphics require programmers to rewrite prior versions of their software, Java enables smoother and more efficient upgrades because it supports prior versions.
Another key concept in Java is the concept of Just-in-time compilation. Typical compilers build code that is optimized at compile-time (and must be re-built for each operating system and CPU type such as Intel, ARM, etc). However, the Java Compiler creates its “machine code” for the JVM in the form of a Java Class File, and it is built only once. This Java machine code is known as Bytecode.
This approach is a key advantage: The Oracle Hotspot JVM, for example, analyzes the Bytecode on the fly, making various tweaks and optimizations for performance enhancements and efficiency improvements. This concept, fits nicely into Principle #5. So what does this mean to your organization? It means your program will be optimized based on the most up-to-date runtime optimization methods used in the current JVM, even if the code you are running was written 15 years ago.
While Java may not always be the “sexiest” choice in today’s technology landscape, it might just be the best one for your needs. And even though Chariot consultants may not choose Java for a project, they will always consider it as they evaluate what is best for your business.
As someone with a voice in your company’s technology choices and investments, it’s crucial that you also understand the larger playing field of coding options and how they might align with your strategic or business goals, even if you are a non-developer. Understanding why one language is more suited for a given software development effort than another one can have a dramatic impact on the long-term success of your company.