No More Java 6 Support in Next Version of IBM i
March 9, 2016 Alex Woodie
We don’t know much about the next release of the IBM i operating system, except that it will (probably, maybe) be called version 7.3 and that it will have awesome new features, according to those who have been briefed under non-disclosure agreements. But IBM has already made one thing certain about the new OS: It won’t run Java 6. As IBM i product manager Steve Will explains, it’s time for Java developers to move on.
IBM updated its Java on IBM i developerWorks webpage on February 17 to reflect the fact that IBM i 7.2 will be the last release of the operating system to support Java 6, including both 32-bit and 64-bit versions of IBM’s Java development kit (called IBM Technology for Java) and associated JVMs. IBM is also ending support for Java 6.26, leaving Java 7 and Java 8 as the only supported releases.
This should come as no great surprise, but it may have an impact on IBM i customers and vendors nonetheless. Sun Microsystems (since gobbled up by Oracle) first released Java 6 way back in the heady days of December 2006, and Oracle ended public support for the cross-platform language in February 2013. Premiere support for Java 6 continued until December 2015, while extended support is slated to continue through December 2018.
As Will explains, because the next release of the IBM i OS will be used on production systems well into the 2020s, IBM decided it had no place in the upcoming release.
“An OS like ours, where releases are going to live for a very long time, we have to look at how we can reasonably support the various JVMs if the JVM itself is going to go off of support in the time while the release exists, and we still might have clients still using it,” Will told IT Jungle. “We put on the developerWorks site the fact that 6.0 is not going to be in any release past 7.2 because anything we do past 7.2 is just going to live too long.”
This leaves IBM i shops moving to IBM i Next (which IT Jungle‘s Dan Burger outed as IBM i 7.3 recently) with two options: Java 7 and Java 8. Oracle unveiled Java 7 to the world in July 2011 and ended public updates in April 2015. Java 8 came into being March 2014 and is scheduled to go to the recycling yard in September 2017. Oracle and the Java community are currently working on Java 9, but delays in its modularization capability and Project Jigsaw have delayed its release until 2017.
Judging by the cadence of releases and the fact that IBM ended support for Java 5 with the launch of IBM i 7.1 in 2010, it’s likely that IBM will continue support Java 7 until IBM i Next Next, ostensibly set for release in 2018, at which time only Java 8 and Java 9 will be supported.
“That would be likely the case,” Will agrees. “We have a lot of our clients who are still back on 7.1, and we told them that Java 5 was not going to be in 7.2. They may still be using Java 5, as they can because they’re on 7.1–and yet there’s no support for it in the community. So what are you going to do about that? If you’re a Java user, you should have been moving forward. That’s what you do as a Java user. But if you haven’t, you need to know that you’re not going to be able to get it when you move to 7.2.”
While RPG continues to be, by far, the most popular development language on the IBM i platform, Java has become a mainstay secondary language, along with .NET, PHP, and even C++. Java is used as a development language by 44 percent of IBM i shops, according to HelpSystems‘ 2016 IBM i Marketplace Survey. That puts Java in fourth place, behind RPG, SQL, and CL, which are used by 89 percent, 74 percent, and 54 percent of the survey-takers, respectively.
Java is also used fairly heavily by independent software vendors (ISVs) writing commercial applications for IBM i, and the lack of support for Java 6 in the next version of IBM i has some people in the IBM i community concerned.
“This has huge implications,” Rob Berendt, an IBM i administrator in Indiana, recently wrote on MIDRANGE-L. “Many vendors like to code to the lowest Java release supported on the current release so they can continue to support those running on unsupported versions of the OS.”
Certain ISV packages require Java 6, and IBM i professionals should be aware of these requirements if they’re planning on moving to the new release of IBM i, Berendt says.
“One should just check the software requirements for your applications,” he tells IT Jungle. “If it says Java 6, do not assume that you can simply change some environment variable and it will run on higher releases.” Berendt says one particular ISV supported such an environmental variable on its IBM i application, and he tried tweaking it, but it wouldn’t load. “This vendor. . . still insists that Java 6 be on your system, and will abort if you remove it from your system.”
Will doesn’t sound that worried that the end of support for Java 6 will be that big an issue–certainly nothing like the move from i5/OS V5R4 to IBM i 6.1, which required extensive changes and recompilation of vendors’ code. Adopting new releases of “modern” Java–which Will defines as anything past Java 5–is relatively easy, he says.
“Certainly I want our ISVs to be aware that, if they’re running with Java 6 behind them, they should certainly be moving forward to Java 7 or 8 because if a client wants to adopt 7.2 you want them to be using the latest stuff,” he says.
But even if an IBM i shop doesn’t develop in Java or run a commercial application that was written in Java, they are still using lots of Java. That’s because IBM uses Java extensively in its various software products that ship with the box, including management tools and the operating system itself. Most of that is written in Java 8, Will says.
The Java community moves faster than the IBM i community, and backwards compatibility is not the priority that it is with IBM and the RPG and COBOL compilers that it has been bringing forward so well and so consistently for so many years. But if you made the decision to get into Java, then you must recognize that need to move forward, Will says.
With Java 9 set to come out soon, Java 8 really should be the goal for IBM i shops. “People, at minimum, are going to want to be on 7. They probably want to be on 8,” Will says. “The folks out there doing stuff in Java in the industry are on 7. If they haven’t moved to 7, they know they need to move to 8. 8 is the most current thing available. The whole Java community has been pushing people to head toward 8.”