Google will support OpenJDK development: the giant's investments in Java and Kotlin - JVM Weekly 18
Conference season is in full swing, so today's topics will be interspersed with talkies from Belgium's Devoxx. The main topic, however, will be Google joining the Adoptium Working Group.
1. Google will support the development of OpenJDK - The giant's investments in Java and Kotlin
Google Cloud Next is an event primarily for Google Cloud users, and as part of it, Google shared new features designed to make their lives more enjoyable. In between, somewhat inconspicuously, there was also a short (< 10 minutes) session devoted to Java - 5 reasons why your Java apps are better on Google Cloud - de facto being a tutorial for several GCP features, mainly Cloud Run. In the end, however, there was an exciting announcement as if as a reward for persistence.
Google has announced joining the Adoptium working group as a Strategic Member. In practice, this means that, like other cloud providers like Alibaba and Microsoft, the Mountain View-based company has also decided to get involved in JDK development. It's apparent that, despite the years on their backs, Java developers remain a gluttonous morsel for infrastructure providers to bend over for. It will be interesting to see if Google has any broader plans for its role in Adoptium, or if we're just talking about strategically pouring dollars into the development of a vital element of its strategy. And that's for both the cloud infrastructure provided to customers and the company itself, many of whose systems run on JVM.
And while we're on the subject, I'll share a session presented at last week's Devoxx in Belgium - Google's Journey from Java to Kotlin for Server Side Programming. Well, it turns out that the big G is investing in Kotlin not only on Android - Kotlin turns out to be a company's officially blessed language on the backend side. The Devoxx talk is very good if you want a better idea of how the JVM is used at Google and what the slow transit from one language to another looks like in such a moloch. Interesting fact - the whole thing is the most popular talk of the entire conference, and within a few days of publication, it was watched by almost 15 thousand people.
Sources
2. The first Release Candidate of the new Spring
We've only written a week ago about the Spring Team upholding plans to release Spring Framework 6.0 in November, and we quickly have to return to the topic. Words have been followed by actions, and the first Release Candidate of the project's new version has been published. This is good information for those who want to try out the new Spring today, especially since we are discussing a nearly-final release. Two things seem particularly important to check - the migration of the entire project from namespace javax
to jakarta
, which could cause some complications, and the opportunity to experiment with the long-awaited Ahead-of-Time compilation. In addition to the main project, companion libraries such as Spring Web Services and Spring Security have also received their own RCs. Overall, it feels like the release is fast approaching 🤟
As a bonus, I have an OST for you to look forward to Spring Framework 6.0:
PS: Persona 5 Royal on Nintendo Switch this Friday!
The truth is, however, that I'm using the above RC a bit as an excuse to cover the topic again and share with you the next two sessions that were presented as part of the Devoxx mentioned above. First of them is Ahead Of Time and Native in Spring Boot 3.0, detailing how the whole process will affect the way applications are developed. One particularly interesting part is a walk through AoT-compiled applications' limitations. For example, JVM Agents will not work, and some third-party libraries will require additional work. Overall, I highly recommend watching the whole thing. It gives you a better understanding of how many architectural changes had to happen under the hood to adapt Spring to work with native images.
The second talk - Introducing Spring Framework 6.0 - is a bit more general but no less interesting. In fact, I recommend watching it even before the presentation on AoT mentioned a while ago because although it doesn't get into the "meat" as much as the former, it allows you to look at several changes that the new Spring Framework brings. So it's a great starting point for anyone who wants to better understand what awaits them in the migration. It will also provide a good introduction for anyone who wants to try on the Release Candidate with which we started this section.
And that conference season continues: while I write this word, JavaOne, Oracle's official Java conference, is happening. It is the first edition in two years, after a pandemic-induced hiatus. The mass of sessions sounds interesting, and I'll certainly be hunting down at least a few of them after the conference. Hopefully we'll get a closer look at some of them in an upcoming issue.
Sources
3. Release Radar: Compose Multiplatform & Javalin
It's been a long time since Release Radar, so it's time for two smaller (but interesting) projects that had the opportunity to publish their new versions recently.
Compose Multiplatform 1.2
There was a period where I regularly informed everyone about changes in Jetpack Compose - a framework for UI development using Kotlin. The last couple of years seemed to be a renaissance for desktop application development solutions.... however, it slowly seems to have been a trickle of corpses. For example, such Catalyst from Apple is a shadow of its original promises.
The battleground seems to be left mainly to JetBrains, who have taken care of Metal API support in Java (Project Lanai), and are also developing the Compose Multiplatform framework (formerly Jetpack Compose). It is now designed to support the Kotlin Multiplatform initiative and allow developers to conveniently create UIs regardless of which platform a given Kotlin application will be run upon.
Now its next version (1.2) has been released, showing just how wide-ranging Compose has become - as we're talking about better mouse and keyboard support, ProGuard support, or better interoperability with Swing for desktop applications. Considering also the recent release of the Kotlin Mobile Multiplatform Beta, JetBrains seems to be moving closer to its goal of making it a TheFramework™️ for all applications. Will there still be a market for it in 2022 (2023 and 2024), and will this investment ensure a bright future for Kotlin? We will certainly be watching.
Javalin 5.0.0
The second exciting news is the new major release of Javalin, as version 5.0 has been released. If you haven't heard of this project, Javalin is a Java and Kotlin web framework that focuses on simplicity - a bit in the style of what Sinatra, Scalatra or even Kotlin's Ktor provides. It supports WebSockets and HTTP3, and uses Virtual Threads by default, so we're talking about a pretty modern solution here. Javalin's advantage over Spring, which is being cited today, is simplicity - its entire source code is 7000 lines of Java/Kotlin code, so any Java developer should understand how it works. The new release introduces some functionality and improvements, but for me, the highlight is it being another example of a project dropping support for Java 8. The new Javalin version 5.0 will only work from Java 11 upwards.
Out of curiosity, does anyone use Javalin in production? Or at least in pet projects?