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 of you who don’t program with Java or for those of you that do, but also live under a rock, you may have not 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. But, 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. Now, no one is going to 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. For those who wish to learn more on coding and technology career, I suggest reading IT career roadmap article.
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 make improvements on 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) has access to. Essentially, Jshell can allow developers to evaluate a single expression of code within a larger portion of code. For example, say an application is 5,000 lines of code, but a developer wants to only have Java evaluate the results of 3 particular lines, not the entire code. Jshell would allow the developer to do this, which is great when debugging a program and when ensuring that specific lines of code 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 solver 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. Now, it is easy to display all current processes running through an OS and developers can even easily run a section of code 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 iteration of Java that is released. 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 in the future, they may develop another language that is not focused around object-oriented programming. It can be said for certain though that Java is not going anywhere, and that it will most likely continue to remain relevant so long as Android is popular.