Devoxx UK, a conference for seasoned Intermediate/Senior Java developers, a bit of Cloud and a lot of architecture. In this short blog post, I wanted to share some of the topics I've found interesting and some hall track discussions I had during the conference. These are my personal notes; nothing here has to be taken too seriously. I met a lot of really good old friends, and I made some new friends too, so in general, it was a great experience!
Spring Boot vs. Quarkus (and GraalVM)
The same old, same old battle between the frameworks. I found this boring because I couldn't find anything new or exciting. Both Frameworks, Spring Boot and Quarkus, were heavily promoted at the conference. Red Hat has done a great job marketing Quarkus, but most of the audience was Spring Boot users. I had the chance to chat with Sanne from the Quarkus team, and they have been working quite an extensibility on performance and optimizations as well as integrations. Knowing Sanne and his passion for building very performant tools makes me confident that Quarkus is maturing in the right direction. Still, the most popular and used framework is Spring Boot, even if VMware, the company behind Spring is not promoting the framework as they should.
On the other hand, GraalVM it is only being promoted by Oracle but is being used by Spring Boot and Quarkus. Native compilation is improving but still slow and only recommended for running your applications, not development mode.
The repository https://github.com/oracle/graalvm-reachability-metadata contains metadata from projects to work with GraalVM. This is a centralized repo to configure libraries to work with GraalVM.
I do expect to see more about GraalVM soon.
Kubernetes/Platforms/Containers at Devoxx
As always, Red Hat promoting Knative—good demos with Knative Functions and Openshift. This, of course, makes me happy, but it will be great to see other companies doing the same. Red Hat is the company that talks about Cloud/Kubernetes in developer-focused conferences. There seems to be a line stopping the Cloud-Native space to reach to these audiences. More news about this is coming in the second half of the year from the CNCF 🤞.
TestContainers by AtomicJar are very well received by developers. Discussing with them, they find it hard to approach the audience of conferences like KubeCon that are not that developer-centric. I strongly believe that the shift toward developers from the CNCF is going to make TestContainers shine in the Cloud-Native space. Keep an eye on this blog for more news about this soon.
The platform engineering message is not a top priority for this audience, compared with observability, architecture and other frameworks. I relate this with the focus on tooling, focused on Java, and not much on continuous delivery, infrastructure, or even containers. There is a fine line between architecture and frameworks and how teams will deliver the applications they build to their customers.
With the massive growth of Cloud-Native tooling, I am expecting the focus on frameworks to slow down, as explained by Bilgin, Cloud-Bound applications will rely on open standards and let platforms provide the capabilities that our applications need to run (instead of relying on dependencies/libraries/frameworks in our apps).
Hall track gossip
- Unconference topics: Is Java Dead? GraalVM or Quarkus? What I took from these sessions is that Java is not fun anymore, the Java community is shrinking. There are, as always, Java/Quarkus/Spring Boot fans, and with fanatics is quite hard to have a productive conversation. My opinions on this topic are quite strong, I love Java and the ecosystem, but the Cloud is not built in Java and we are still catching up.
- WASM and GraalVM: GraalVM can run WebAssembly Code. GraalVM is the right place to produce WebAssembly code instead of creating Native binaries. It feels like this is being worked on by the Oracle team. Keep an eye on the news in the next few months (June 13th) https://www.graalvm.org/release-notes/release-calendar/ . Check the WebAssembly mention at the end of this article: https://medium.com/graalvm/graalvm-native-image-meets-risc-v-899be38eddd9
"Considering that it took only around six months to add RISC-V support to Native Image using the LLVM backend, the idea to add support for other potential targets such as WebAssembly is appealing. In fact, adding other architectures will become even more accessible, as the LLVM backend will soon emit the Native Image data section itself, allowing it to skip adding information about object files."
- WASM is not something that the Java community is interested in, at least not today.
Slides, Pics, and Resources
You can run the demo in your local environment by following the step-by-step tutorial here: https://github.com/salaboy/from-monolith-to-k8s/tree/main/platform/prototype
Time to prepare for Spring I/O in Barcelona! I am hoping to get at least better weather over there! See you all soon!