Java retrospective #1 – community highlights of 2019
As 2019 draws to a close, we got in touch with some prominent members of the Java community to gather their thoughts on the events of the last year. In this five part series, we will look at what they had to say. In this first part, we asked what their Java highlights were in 2019.
What was your Java highlight in 2019?
My Java highlight of the year was to see such enormous versatility and high speed in the Java ecosystem. I can’t remember any point in the last 10 years when being part of the Java community was as exciting as it is today. Different microframeworks, reactive programming, GraalVM… An incredible amount is happening in parallel right now.
Tim Zöller – Team Leader Java, ilum:e informatik AG
On a personal level, I believe we will celebrate our 50th meetup of the Java User Group Saarland this year. Apart from that I was happy about the great support of the Java community which offered very fast maintained OpenJDK JDK distributions as replacement for the Oracle JDK.
Thomas Darimont – Founder of Java User Group Saarland and Fellow at codecentric AG
Very subjective, but I found it extremely exciting to see how R2DBC has gone live. On the one hand it closes a real existing gap in the Java world, on the other hand I could follow the development from the very first idea to the implementation and finally the GA release and even work on some less relevant parts. It’s exciting to see how innovation is created. I am curious to see how the scene will develop in the future.
Jens Schauder – Spring Data team, Pivotal
Java is a tool like many others and only a part of the IT world. Java and the JVM are a wonderful constant, which gives many people – including me – a nice career. In 2019, I thought it was good that frameworks like Micronaut and Quarkus were bringing a breath of fresh air into the ecosystem. Whether they will “replace” Spring, I don’t know. But I also wonder if this is even necessary (Spoiler: I don’t think there is enough space for several frameworks).
Michael Simons – Java Champion and Spring Data Team, Neo4j
We got the JavaFX release train working, with an increasing number of downloads of the JavaFX modules from maven central, and the SDK’s provided by Gluon. We delivered JavaFX 12, JavaFX 13, and JavaFX 11.0.5 (long-term commercially supported release). And our book about Modern Client Java(FX) development was released.
Johan Vos – Java Champion, co-founder Gluon and LodgON
My 2019 favorite Java enhancement was the Java 13 text block feature. As a Java developer who has to write SQL or JPQL queries, this feature not only increases readability, but also allows you to easily copy a native SQL query from a DAO (Data Access Object) or repository and execute it in an SQL console or database visualizer tool.
Vlad Mihalcea – Java Champion and author of High-Performance Java Persistence
SEE ALSO: Java 14 update news
Playing around with
java.lang.Recordin JDK 14. This is a very promising new feature that will drastically reduce the amount of boilerplate code in the future.
Lukas Eder – Java Champion and Founder and CEO at Data Geekery
I liked the way Preview Features enabled a new feature, Switch Expressions, to be introduced to the language in a way that us developers could try out and give feedback on how it feels to use in the real world. I loved that this feedback was listened to, and where appropriate acted upon, so that the syntax evolved over a few releases. Now Switch Expressions is scheduled as a “standard” feature in JDK 14.
Trisha Gee – Java Champion and Developer Advocate, JetBrains
There were actually three highlights for me:
More news and rumors around Project Loom. I have worked in the area of Reactive Programming for almost 4 years. In the last 3, I have been an active contributor to the libraries, like Project Reactor. Therefore, the appearance of the new “Lightweight Threading” model for non-blocking Imperative Programming in Java immediately grabbed my attention. The idea itself is more than amazing, and as an advocate of non-blocking I/O, I’m happy to see the new changes are coming. But, on the other hand, it is going to impact Reactive Programming/Reactive Streams position, since that was the only way to write clean code and do non-blocking I/O at once. Still, I believe it will be a good improvement of Reactive rather than a replacement. Let’s see how it goes and how much time it takes to deliver that project into JDK since I know there are a ton of corner cases in the implementation of Project Loom. Nevertheless, I’m definitely looking forward to its release.
The end of ADBA (Asynchronous Database Access API). This year at OC1, Oracle announced the end of the ADBA work process in favor of Fiber rather than async. Thus, good old JDBC becomes non-blocking without any changes.
Active Graal development. I’m happy to see that Graal (as a JIT compiler), as well as GraalVM (as a set of technologies), are actively being developed now. What does it mean for me:
- We are improving the performance of Java Runtime, and Graal as a C2 replacement is an excellent example.
- We will get more communities, e.g., Python, Ruby, JS/Node, on board because of the possibilities to use JVM and JDK for “free”. You can imagine Java Dev using python specific libs, or vice versa, node dev using Aeron, as a high-performance network protocol with no requirements to learn Java!
- Native images support which helps in the adoption of FaaS in the Java ecosystem.
- As for me, Graal is a significant shift in Java adoption by other communities.
Oleh Dokuka – Java Champion and Principal Engineer / Dev Rel, Netifi
OK, so this is related to an Azul product, but it was still very significant for me. The Zing JVM has always worked in conjunction with an OS-level module called the Zing System Tools (ZST). This is great for enabling better memory management but has made microservice installations harder than we’d like. In 2019, Zing now no longer installs ZST by default so it can be used in the same way as any other JVM.
Simon Ritter – Java Champion and Deputy CTO, Azul Systems
I cannot name a special highlight in 2019. For me personally, it was most exciting to see that Java has moved forward actively. Projects like Graal or in general the features in new JDK versions, which are often inspired by other languages, show me that Java is not dead yet and I can rely on Java in the future.
Michael Vitz – Senior Consultant, innoQ Deutschland GmbH
Even if it sounds a little bit like advertising, my highlight was that the Java community created OpenWebStart, an open source replacement for Oracle WebStart. Even though WebStart is certainly not one of the top technologies 2019, it is still actively used by many companies. Most of these companies were overwhelmed by the too short time between announcement and final removal from the Oracle JDK and would not have been able to implement a good alternative in too short a time without an open source implementation of the JNLP standard. One consequence would certainly have been the use of outdated Java versions in many places. I especially liked that several companies and organizations (AdoptOpenJDK, Red Hat and Karakun) worked together to find a good solution.
Hendrik Ebbers – Java Champion and Java developer, Karakun AG
Of course Reactive SDN, respectively the whole trend to establish reactive database drivers for Java.
Johannes Unterstein – Java User Group Kassel organizer and Distributed Applications Engineer, Mesosphere
GraalVM with its productive usability since May this year was my favorite. The multilingualism of GraalVM is in the foreground, paired with the ability to create native images that can run as standalone binaries with improved start-up time and low memory consumption in the operating system.
Wolfgang Weigend – Systems Engineer Java Technology and Architecture, Oracle
Unfortunately, two of the features I’ve been salivating over for the longest time – text blocks and a smarter, more pattern-match-y switch expression – are preview features in the latest supported Java, version 13. Insofar as syntax is concerned, it’s an exciting time to be alive only if you have enabled preview features.
I love the new production-minded optimizations, though. Java 13 includes many features that make Java even more pleasant to operationalize. One of my favorite new features is application class-data sharing, to enable dynamic archiving of classes at the end of application execution. I also dig the various enhancements to the ZGC, allowing it to return unused memory to the operating system, a massive win for container-centric applications where you’re typically running software in memory-constrained environments.
Josh Long – Java Champion and a Spring Developer Advocate, VMware