The Real Deal About Java and the Future of Ignition
Oracle will soon make sweeping changes to the Java roadmap by removing Java Web Start and ending support for older versions of Java. While this may cause some concerns, we have a migration path that will ease the transition. Read on to learn more about the changes to Java or skip ahead to our key takeaways.
Oracle, the “steward” of one the most popular programming languages in the world, has recently put out a white paper discussing the future roadmap for Java. In it, Oracle reveals a couple of significant changes that we want to address. We also want to take this opportunity to talk about the long-term benefits this change brings to Ignition. But before we dive into the nitty-gritty, let’s take a step back to talk about Java and why we chose it for Ignition.
Why We Decided to Drink the Java
Fifteen years ago when we started the process of developing this new disruptive industrial SCADA platform, we needed a programming language that afforded us incredible flexibility. After exploring our options, we finally settled upon the Java programming language since it had two major strengths that were important to us.
Java’s primary strength is its fairly unique status as a totally cross-platform programming language with runtimes for Windows, Linux, and Mac. Java’s secondary strength is its massive popularity as an established programming language used predominantly among large enterprises, powering the biggest server applications in the world. According to the TIOBE Index, Java has remained one of the most popular programming languages, usually taking the #1 or #2 spot on the list.
What you have is a highly regarded, cross-platform programming language with an extensive catalog of available libraries backed by a vibrant community of developers. The only distant alternative to Java would have been C++. While C++ could be considered a cross-platform language, it takes additional effort to implement. Java allowed us to develop the industry’s first OS-independent solution.
In addition, Java allowed us to create a totally modular platform, which C++ would not have allowed us. Java has a very strong system for dynamically adding new code to your program after the fact.
We also leveraged excellent technologies such as Java Web Start, which gives Ignition the ability to easily deploy unlimited clients throughout an organization. This ability gives Ignition a competitive edge in our industry.
Two Significant Changes
In its recent white paper, Oracle indicated they are making two major changes to Java. The first change has to do with Java Web Start and Java applets. In the past year or so, many web-browser developers have disabled by default or removed support for plugins such as Java applets and Flash because of security reasons. Oracle has made the decision to remove applets and Java Web Start from future versions of Java, essentially removing the web-based deployment mechanisms for desktop applications.
The second change applies to Java’s future releases and commercial use. When Oracle originally acquired Java from Sun Microsystems, they inherited a release cycle wherein a new version was released about every two years. Oracle is transitioning to a much faster release model with a new major version every six months, which will allow Oracle to modernize the Java ecosystem more quickly.
Additionally, Oracle is changing how it releases updates to older versions of Java. Going forward, Oracle will no longer offer updates to older versions of Java for commercial use unless customers have a support contract.
A More Modern, Open Approach to Java
We realize that Oracle’s changes to the Java roadmap may initially cause some concerns for our customers. However, we genuinely believe they are positive developments in the long run. To get a better perspective on the situation, we must look at the history of Java.
When Sun Microsystems developed Java, they released the reference implementation, Java compilers, virtual machines, and class libraries under a proprietary license. Then in 2007, Sun relicensed most of its Java technologies, specifically Java Virtual Machine (JVM) and Java Developer Kit (JDK), under the General Public License (GPL) and made them open-source.
In 2009, Oracle acquired Sun Microsystems, thus inheriting the Java intellectual property and becoming the “stewards” of Java. From that point on, Oracle has provided commercial support and updates to Java. Prior to 2011, Oracle had operated under a model where they made changes to their version of Java, and those changes would then be pushed to the developer community to include in the new version of the OpenJDK. After 2011, the model has flipped, in that any updates are made first in the OpenJDK, and then pushed towards Oracle for inclusion in their version of Java.
To summarize it simply: Oracle’s distribution of Java is no longer going to be the go-to version. That honor is shifting towards the open-source distribution, the OpenJDK. In doing so, Oracle is acknowledging that the community is the real “steward” of the Java language and runtime.
Viable Alternatives are Available
Oracle’s plan to eliminate the free long-term, commercial-use updates will require those using Java commercially to purchase a Java Advanced SE license from Oracle, or find a viable alternative. Fortunately, viable open-source alternatives are available and there is time to prepare, since the change to older Java SE versions won’t take effect until January of 2019.
If you are running Oracle Java 8 SE, we recommend migrating to the OpenJDK version of Java. You can download the reference implementation of Java at www.adoptopenjdk.net. You also have the option to download Zulu, which is a free, certified build of the OpenJDK from Azul Systems that is fully compliant with the Java SE standard. If you want a commercially supported version of the OpenJDK, Azul Systems offers Zulu Enterprise as well.
What Does the Future of Ignition Look Like?
While Oracle’s changes are fairly significant, their announcement did not come as a surprise to us, and we’ve been working hard in recent years to improve various aspects of the Ignition user experience including the use of Java.
Oracle’s announcement also gives us this opportunity to talk about some of the great things we have in store for Ignition. Below are two main points we’d like all Ignition users to know.
Java Embedded in Ignition v8.0
First and foremost, thanks to new technical features introduced in Java 9, we’ll soon be able to actually embed the open Java runtime directly into Ignition itself. In Ignition v8.0, Java will no longer be an additional component that customers have to download and install.
This change to embedded Java will also include a new, more streamlined way to launch the Ignition Designer and Vision clients. This new method will eliminate the need to download, install, or update Java on client machines, making it easier for IT to manage.
In addition, the ability to embed Java with Ignition will allow us to streamline our quality assurance (QA) process. Currently, Ignition v7.9 supports Java versions 6, 7, 8, and 9. It takes a massive effort to test all of these versions, and having Java embedded in Ignition v8.0 will help us improve the process and improve the overall experience.
Java Included in Future v7.9 Releases
We also plan on embedding Java into Ignition beginning with v7.9.10. After this change, Ignition v7.9 will no longer require Java to be installed. Also, for quite some time we’ve offered the Native Client Launcher as an alternative means of launching the Designer and clients without using Java Web Start. We suggest using the Native Client Launcher for Ignition v7.9.
A Bright Future Ahead
Over the past 15 years, our development team has worked hard to create an industrial SCADA platform that paves a new way in the industry. That has required us to listen carefully to our customers while keeping a close eye on what’s happening in the industry. In that time, we’ve certainly seen many technological changes occur, and Ignition’s ability to flow with those changes is a testament to how strong and flexible a platform it is. We’re confident that Ignition will continue to enable our customers to build practically any industrial application they need, and we’re excited about the new things they’ll be able to do with Ignition in the near future.
Key Takeaways and Additional Resources
To recap, here are the quick takeaways:
- If you are using Ignition v7.9 or v7.7 LTS, migrate over to the OpenJDK (available at adoptopenjdk.net) or download Zulu, which is a free, certified build of the OpenJDK from Azul Systems that is fully compliant with the Java SE standard. If you want a commercially supported version of the OpenJDK, Azul Systems offers Zulu Enterprise as well.
- Use Native Client Launchers to launch the Ignition Designer and clients as an alternative to using Java Web Start.
- We plan to embed Java in Ignition v7.9.10 and v8.0. Once those versions are released, downloading Java will no longer be an issue.
The links to the OpenJDK Version 8 and Java 8 from Azul Systems are available below:
Certified Builds of OpenJDK from Azul Systems
For more information about supported Java versions for Ignition v7.9, please see our brief Knowledge Base article on the subject. Our support team is also available to assist you with any questions or any Java-related issues with your Ignition system.