Author: Karsten Silz
Jul 6, 2022 4 min read

Permalink: https://betterprojectsfaster.com/guide/java-full-stack-report-2022-07/new-noteworthy/

Java Full-Stack Report July 2022: New & Noteworthy


This is an old version! Click below for the current one.

See Current Version


What’s This?

Here are the most important news for Java developers from last month - in my opinion, at least.

Archive

2022 Jun May Apr Mar Feb Jan

Table Of Contents

New & Noteworthy

Spring Data MongoDB Vulnerability

Here’s another Spring vulnerability. Now the last one affected Spring Boot applications deployed in Tomcat, Glassfish, and Payara.

This is more limited in scope: “The vulnerability affects Spring Data MongoDB applications using repository query methods that are annotated with @Query or @Aggregation and use parametrized SpEL statements.” The fix is to update to Spring Data MongoDB 3.4.1 and 3.3.5 or greater.

Kotlin Roadmap

In 2022-2023, the key projects for the Kotlin team are:

  • Improve the quality and stability of Kotlin releases
  • Work on the new K2 compiler
  • Release the Stable version of Kotlin Multiplatform Mobile
  • Release the Stable version of the Kotlin/JS IR backend

Here are my thoughts:

  • I’ve barely worked with Kotlin in my mobile app. But it seems Kotlin is either buggy or perceived as such, as improving its quality and stability is the #1 project.
  • The new K2 compiler will be faster. Great - Java build times are often atrocious. 😩
  • Kotlin Multiplatform Mobile combines native iOS and Android development with Kotlin for the business layer. I think it’s misguided: Who wants to make building two separate iOS and Android apps more complicated when you can build iOS and Android apps from one codebase with Flutter or React Native?
  • The Kotlin/JS IR compiler turns Kotlin into JavaScript. This is another part of JetBrains’ “Let’s throw everything at the wall and see what sticks” strategy for Kotlin.

Stack Overflow Developer Survey 2022

Stack Overflow ran a survey among developers in 180 countries from May 11 - June 1, 2022. Here are the most important results:

  • Java is the fourth most popular language, behind JavaScript, Python, and TypeScript. Kotlin is #12, Groovy is #21, Scala #23, and Clojure #29. There were 71,547 responses.
  • MySQL is the most popular general database. Postgres is #2, MongoDB #3 (excluding SQLite which is an embedded solution), Cassandra #12, Neo4j #13, and Couchbase #15. There were 63,327 responses.
  • React is the most popular web framework (Node.js is a back-end framework). Angular is #3 (behind Express) and Vue #4. There were 58,743 responses.
  • In the “Other frameworks and libraries” grab bag section, Spring was the only Java back-end framework listed as the overall number four. In mobile app frameworks, Flutter and React Native were tied, while Xamarin was less than half as popular. There were 54,414 responses.
  • Visual Studio Code was by far the most popular Java IDE. IntelliJ was #2, Eclipse #3 with 45% of IntelliJ’s popularity, and Netbeans #4 with 42% of Eclipe’s popularity. There were 71,010 responses.
  • For professional use, Windows had 49%, Linux 40%, and macOS 33%. As the sum of these numbers exceeds 100%, many developers apparently use more than one computer! There were 71,503 responses.

The survey has more sections, such as the “Most loved, dreaded, and wanted” and the “Top paying technologies”.

What is OpenJDK?

We use the term “OpenJDK” a lot in Java. But what is it exactly?

Nicolai Parlog from Oracle explains it in this video:

  • OpenJDK is the vendor-neutral community that works on the Standard Edition of Java and related tools (like the compiler, the JVM, or the HotSpot JIT compiler). It’s on GitHub now.
  • The other Java editions are Jakarta EE (formerly “Java Enterprise Edition” or “Java EE” or “JEE”) and Java Micro Edition (“Java ME” or “JEE”). OpenJDK isn’t involved in those.
  • OpenJDK has many projects. The JDK Project is the most important as it has created all Java releases from Java 10 onwards. Currently, Java 19 and 20 are in development.
  • Non-trivial Java changes must use JDK Enhancement Proposals (JEP). For instance, Java 19 has seven.
  • The Java Community Process (JCP) seems to have no say in Java’s development anymore. It just rubber-stamps a new Java release with a single Java Specification Request (JSR). Here’s the one for Java 19.
  • OpenJDK neither creates production-ready Java distributions nor does it support them. That’s the job of vendors. Here’s a list of the ones that have Java 17 distributions.

comments powered by Disqus