The future of Java: what are the Java trends for 2018?
By Jamie Mercer
As 2017 comes to a close, we’re already eager to know what the future of Java is; both in terms of its evolution and its continuous impact.
How will developers cope with changes and developments to the Java language? How will these Java trends impact those working with Java? Four Java experts share their thoughts.
Markus Eisele, a Java Champion and Director of Developer Advocacy at Lightbend Inc., is a regular speaker at Java conferences around the world and an influential figure in the world of Enterprise Java.
He believes that the biggest challenges will come from the new release cycle, which is changing from one major update every two years to more regular updates every six months.
“Companies will have a hard time catching up with the short support cycles in OpenJDK,” he says. “The long-term support versions will probably draw more attention but what we don’t know right now is what this actually means for security updates.”
Java 7 and Java 8 both had well-documented FAQ pages but Oracle is yet to outline its plans for Java 9 or 10.
Eisele also raises concerns about the new build and release infrastructure in OpenJDK, which up until this point has relied on the London Java Community for binary builds.
“Oracle has said they are going to integrate that into the OpenJDK project,” says Eisele. “But with these shorter release cycles, I’m wondering how long that will actually take.”
Despite this, Markus is optimistic about the future of Java: “This is a big opportunity for the community and other companies to contribute and influence the direction of Java in a way that wasn’t possible before,” he says.
“The continued investment from Oracle can make this a very powerful new way of developing the language and its ecosystem way faster and making it more flexible.”
Kerr believes Java and the software industry as a whole are supporting developers moving at a faster pace. “With JShell, developers get feedback immediately instead of waiting ten seconds,” she says. “With timed release cycles, we get language updated every six months instead of a few years.”
From convenience methods for factories to modules, which Kerr is excited about, developers will have access to even more tools.
“Even outside of Java, I think the trend is toward developer-centric languages like Kotlin, instead of Scala which originated in research.”
Kerr sees things moving faster, and the increased need for automation. “Tasks like keeping libraries up-to-date fall to bots, automated tests become even more important as cross-repository upgrades and refactors are completed in bulk,” she says.
“The new stack trace API can help with this, as we write programs to diagnose common problems and tell us about them.”
As well, Kerr believes that the developer experience that matters the most is that of the maintainer, not the writer. “Automation of code will add means of re-use without indirection code will be entirely optimized for clarity of reading rather than ease of writing,” she says. “When we can update many places at once using automated code editors instead of coupling.”
On this basis, Kerr sees that this will combine with another ongoing Java trend: the embracing of interoperability and cooperation. “From OpenJDK to native code interop, Java is embracing partnerships,” she says.
Kerr believes the industry trends will continue among people and organisations as companies contribute to open source, and the open source community will contribute to automated upgrades.
Meanwhile, Kerr adds that cooperation grows in languages and runtimes, like better support for external processes in Java 9.
“Java 9 has always been about versatility, starting with cross-platform. Java and the JVM are eminently practical, and continue to become more so with increased developer focus and interlanguage cooperation.”
Daniel Bryant works as an Independent Technical Consultant, and he thinks the future of Java and JVM space looks to be super interesting in 2018.
“With the successful release of Java 9 in September of 2017 – which included the much-awaited modularisation of the JDK via Project Jigsaw – I believe next year is the time when the surrounding community can start taking advantage of this enhancement,” says Bryant.
“Expect the bigger and more popular open source libraries to modularise first, then the frameworks, and finally the rest of us will begin our journey towards modularising the applications we are writing every day.”
With the changing of the guard on the Java from Oracle to the Eclipse Foundation, Bryant is expecting lots of interesting developments within this space – particularly around the new imagining of the Java EE platform as EE4J, the increasing community and ownership and involvement, and the rise in popularity of the MicroProfile project.
“I believe the Spring stack will continue to dominate within the world of microservices, and the new Spring 5 framework will further spread the benefit (and new learning to be done) around the reactive paradigm,” says Bryant.
Finally, within the JVM space, Bryant is expecting Kotlin to get even more uptake and attention in 2018. “Google has in effect anointed this platform as the next ‘chosen one’ via its adoption of Kotlin as an official language on Android,” he says.
“Even the conference living legend Dr Venkat Subramaniam has spoken enthusiastically about Kotlin, mentioning at Devoxx BE 2017 that Kotlin is essentially Java with all of the nice things added that the language is missing.”
Commenting on the future of Java, Groner thinks Java will continue to evolve the J4EE platform, which is not under the Eclipse Foundation. “The Java community made a big effort in 2017 and I personally see the community even more involved with the future of Java EE (J4EE) in 2018,” says Groner.
As well, Groner believes reactive architectures using reactive patterns and reactive programming will also grow and attract more developers in 2018. “This architecture had an interesting growth in the front-end world in the last couple of years, and with Spring framework being one of the first frameworks for back-end to implement the Flux/Redux pattern for back-end (and the first in the Java world), it will inspire other languages to offer a similar functionality as well,” she says.
Groner also predicts that frameworks such as Hibernate and J4EE will also adapt to allow more asynchronous functionalities, along with the update to the database drivers, which at this time, the majority of the relational database drivers are still synchronous.
Personally, Groner is most excited about this topic in addition to believing more attention is being geared towards the JVM ecosystem, especially with languages such as Kotlin.
So, what do you think the future of Java is? Let us know what you think of these upcoming Java trends by these experts.
Looking for a new challenge in 2018? Browse our Java jobs to see the latest opportunities from around the world.