Matt Zand is a programmer, businessman, IT Consultant, and writer. He is the founder and owner of WEG2G Group. He is also the founder of DC Web Makers. His hobbies are hiking, biking, outdoor activities, traveling, and mountain climbing.
For those who don’t program with Java or those of you that do but also live under a rock, you may not have been aware that a recent major version of Java just came out this past year. In September of 2017, Java 9 came out, which is meant to replace its older brother, Java 8, which came out in March of 2014. Why is there a continuing need to update Java, and what are the major differences between Java 8 and Java 9?
Well, as you may know, programming has changed greatly since its inception and even in recent years. There has been an increasing need to make computers more efficient, as they are being used for more serious projects, like the 3D printing of medical devices, than ever before. No one will be using Java to program a 3D printer, but Java is still used in many major applications, like Minecraft, and it is the primary tool used to build Android apps. I suggest reading the IT career roadmap article for those who wish to learn more about coding and technology career.
Java 8 Shortcomings
Although Java is used in many major projects and is sometimes used to teach students how to program, it still has some issues and kinks that the developers have tried to solve over the years. All previous iterations have attempted to patch any well-known bugs or improve past features, and Java 9 is no different. The most major changes from Java 9 from Java 8 include improvements and new features to modularity, the addition of Jshell, improvements to the compiler, the enhancement of some popular APIs, and more.
Java Improvements on Version 9
One of the most major improvements to Java 9 from Java 8 is how Java applications are compiled. One of the new options for compiling code within Java is called ahead-of-time (AOT), whose intended use is to lower the amount of time Java applications spend when starting. Just-in-time (JIT) was the most used compiler in the past; however, AOT has much lower compile times, especially for larger Java applications. However, Viktor Klang, a CTO for a prominent software developing company called Lightbend, said that “Given the experimental status [of AOT]—and the limitations in the initial release—for JDK 9, it is unlikely to have any intended, or actual, impact on the general developer population on the JVM.” So, even though AOT can lower compile times, it is likely that most developers won’t have Java applications large enough where they will begin to see an actual difference between JIT and AOT.
Another major feature added to Java 9 is Jshell, which is a command-line tool. Jshell is revolutionary because it established a single read-eval-print loop tool that anyone using the Java Development Kit (JDK) could access. Essentially, Jshell can allow developers to evaluate a single code expression within a larger portion of code. For example, say an application is 5,000 lines of code, but a developer wants only to have Java evaluate the results of 3 particular lines, not the entire code. Shell would allow the developer to do this, which is great when debugging a program and ensuring that specific code lines are working properly.
Java 9 and API Improvements
A final large addition to Java 9 is the plethora of enhancements that some of the most popular APIs obtained. Some of the APIs that were improved were java. util.stream, java.util.Optional, and java. Lang.Process. There were changes made to each, and essentially, they were all updated to solve issues that developers experienced in the past with them. For example, with the Process class, it was previously difficult to manipulate certain processes and subprocesses a local operating system could perform. However, in Java 9, the ProcessHandle class was added, which makes this much simpler. It is easy to display all current processes running through an OS, and developers can easily run a code section when a certain process is completed by an OS, which was not so easy to do previously. It is worth noting that the best way to learn a Java API language is via projects and practice. For example, DC Web Makers Company only offers project-based training where students learn concepts through real-world projects.
Java and Ongoing Progress
Overall, Java 9 is a large improvement over its predecessor, but it definitely will not be the last Java release iteration. There are still quite a few issues with Java, including its lackluster runtime compared to C++ and the fact that design is limited since only object-oriented programming is possible. While I always suspect that object-oriented programming will be central to Java, it could be possible that they may develop another language that is not focused on object-oriented programming in the future. It can be said for certain, though, that Java is not going anywhere and will most likely continue to remain relevant so long as Android is popular.