How to Build Java Applications Today: August 9, 2021
Tags: java, bpf
Published: 2021-08-09 21:56:10

---
canonical_url: https://bpfnl.substack.com/p/how-to-build-java-applications-today-3b0
---

## TL;DR
AdoptOpenJDK = Eclipse Adoptium, Java climbs to #2 in RedMonk rankings, Java drops to #3 in TIOBE Index, Hibernate 5.5.5/6, MicroProfile 4.1, Quarkus 2.1.1, Open Liberty 21.0.0.8, Apache Camel 3.11.1.

***

## README
This is **issue #48** of my weekly newsletter, “How To Build Java Applications Today”. I read all the Java newsletters, so **you** don’t have to! And it’s “Java news with a smile”.

If you like my newsletter, then [subscribe to it on Substack](https://bpfnl.substack.com)! Or read it on [dev.to](https://dev.to/ksilz/series/11995),  the [Java Cafe](https://thejavacafe.com/ksilz/series/1), or [Medium](https://ksilz.medium.com). Even better: Share it with people who may be interested.

***

## Quote of the Week
‌*7 Ps: Proper Planning and Preparation Prevents Piss Poor Performance.*
This [British army saying](https://military.wikia.org/wiki/7_Ps_(military_adage)) makes for pretty powerful project prolongation.

***

## Stand-Up
Spring One is just [a few weeks away](https://springone.io). And this is a “Spring One with a major new Spring release” - Spring 6.0. I’m looking forward to hearing [what we’ll get](https://springone.io/2021/sessions/from-spring-framework-53-to-60). And how will “Spring + [Spring Native](https://github.com/spring-projects-experimental/spring-native)” compare with Quarkus, Micronaut, and the other “challenger frameworks”?

On a sad note: Spring One is the only conference this year that declined all three of my proposed Java talks. I think Spring One was always a long shot, given that I just started conference talks in earnest this year. Still, rejection hurts! 😩

***

## ADVERTISEMENT
### 22 YEARS OF FULL-STACK JAVA FOR HIRE THIS DECEMBER
I’m a full-stack Java developer with 22 years of experience, looking for a project in December 2021, in Milton Keynes, London, or remote. I’ll work as a contractor or fixed-term employee but don’t take permanent positions. 

Interested? Then check out my resume & work samples!

[CHECK OUT MY RESUME & WORK SAMPLES ](https://ksilz.com/)

***

## Bookmarks
### Java
#### AdoptOpenJDK Is Now Eclipse Adoptium
It’s official now: The most popular OpenJDK distribution is open for business at the Eclipse Foundation! We can now get our JDKs for Windows, Mac & Linux at [https://adoptium.net/releases](https://adoptium.net/releases). As of August 9, there are no Docker images yet, so [the old AdoptOpenJDK images](https://hub.docker.com/_/adoptopenjdk) have to do. Azul was first out of the gate to [offer commercial support](https://www.azul.com/blog/eclipse-temurin-new-distribution-of-openjdk/).

There are [five sub-projects](https://projects.eclipse.org/list-of-projects?combine=adoptium&field_project_techology_types_tid=All&field_state_value_2=All) under the Adoptium umbrella. The most interesting to us is “Temurin”, which produces the OpenJDK runtimes. “AQAvit” is the test suite. 

And then we have “Mission Control”, which “enables you to monitor and manage Java applications without introducing the performance overhead normally associated with these types of tools”. This sounds an awful lot like the JDK Flight Recorder (JFR) I wrote about five weeks (see [issue #43](https://bpfnl.substack.com/p/how-to-build-java-applications-today-b5c)). Marcus Hirt, one of the key people behind that project, had sounded the alarm back then: “For JFR to remain the premium, best in class, production profiling platform, some investment will be needed. […] The OpenJDK community will need to be involved.” Seems like he got his wish: Markus is one of the [three project leads](https://projects.eclipse.org/projects/adoptium.mc/who) of “Mission Control”.

Java wouldn’t be Java without Oracle lawyers making life harder: Because Adoptium uses the Oracle Java SE Test Compatibility Kit, it [can’t release](https://projects.eclipse.org/projects/adoptium/governance) OpenJ9-based or GraalVM-based runtimes. OpenJ9 is the only non-Hotspot JVM in wide circulation. It originated at IBM and is now an [Eclipse project](https://www.eclipse.org/openj9/). It typically starts faster and uses less memory than Hotspot (see my [lightning talk](https://betterprojectsfaster.com/learn/talks-ljc-lightning-talk-2020-eclipse-openj9/) from May 2020). IBM joined Adoptium in April (see [issue #32](https://bpfnl.substack.com/p/how-to-build-java-applications-today-126)) and now distributes the OpenJ9 builds as “[IBM Semeru](https://developer.ibm.com/languages/java/semeru-runtimes/)”.

As a “Man of the Pen”, I appreciate the care that Adoptium took to name its projects: “Adoptium” sounds Latin (for old folks like me) or like a spell from Harry Potter (for the younger folks). “AQAvit” sounds like the [Scandinavian schnapps](https://en.wikipedia.org/wiki/Akvavit) that’s also popular in my German home country. And “Temurin” is an [anagram of “runtime”](https://anagram-solver.net/temurin). 

I don’t think that IBM’s “Semeru” is an anagram: “resume” is [the only possible word](https://anagram-solver.net/Semeru). Or maybe that’s what you always keep up-to-date at IBM? And good for Oracle: There’s no anagram for “lawyerssuck”!

[Announcement](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/)

***

#### Java Climbs to #2 in RedMonk Ranking
Twice a year, analyst firm RedMonk publishes their “Programming Language Rankings”. They query the repository languages of all GitHub repositories and analyze the discussions at Stack Overflow. And they have great news this time: A year after Java [dropped to third place](https://redmonk.com/sogrady/2020/07/27/language-rankings-6-20/) behind JavaScript & Python, Java is now #2 again, ahead of Python. RedMonk even heaped praise onto Java:

“The language once created to run cable set top boxes continues to be a workhorse, and importantly one that has consistently been able to find new work to do. Java’s performance on these rankings continues to impress, all these years later, and as it’s shown a remarkable ability to adapt to a rapidly changing landscape it’s a language that would be difficult to bet against.”

Especially sweet is that the new kids on the block were stagnant - TypeScript, Go, Kotlin, and Rust. Only Dart moved up one place - and Dart is a lot like Java (see [issue #45](https://bpfnl.substack.com/p/how-to-build-java-applications-today-67c)).

[Article](https://redmonk.com/sogrady/2021/08/05/language-rankings-6-21/)

***

#### Java Drops to #3 in Tiobe Index
You win one, you lose one: After briefly ascending from #3 to #2 in the TIOBE index in July (see [issue #44](https://bpfnl.substack.com/p/how-to-build-java-applications-today-6e6)), Java’s now back at #3 in August behind Python and C at #1. TIOBE measures programming language popularity with search engine queries. At least that’s what I **think** - here’s what TIOBE writes:

“The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings.”

Do you now know **how** TIOBE measures? Nope, didn’t either.

And the TIOBE findings remain as baffling as ever: 50% more people search for Visual Basic than for JavaScript (4.7% vs. 3%). Groovy is at #11 with 1.4%, just slightly behind SQL, while Scala is at #30 (0.5%), and Kotlin languishes at #37 (0.3%). But I guess this is what people are searching for…

[Article](https://www.tiobe.com/tiobe-index/)

***

### Releases
#### Hibernate 5.5.5.Final & 5.5.6.Final 
5.5.5.Final is a small maintenance release with [two bug fixes and two improvements](https://hibernate.atlassian.net/secure/ReleaseNote.jspa?version=31963&styleName=Html&projectId=10031). 5.5.6.Final is smaller still: It fixes just [a single bug](https://hibernate.atlassian.net/browse/HHH-14768).

[Announcement 5.5.5.Final](https://in.relation.to/2021/07/30/hibernate-orm-555-release/), [announcement 5.5.6.Final](https://in.relation.to/2021/08/04/hibernate-orm-556-release/)

***

#### MicroProfile 4.1
The **good** thing about a software standard is that there can be many different implementations. The **bad** thing about a software standard is that there can be many different implementations! That’s why this release of the “Microservices with Java/Jakarta EE parts” framework MicroProfile now defines exactly which Test Compatibility Kits (TCKs) implementations have to pass: 8 MicroProfile Specification TCKs and 5 Jakarta Specification TCKs. 

These are the projects that implement MicroProfile 4.1:
- [KumuluzEE ](https://ee.kumuluz.com/)
- [Open Liberty](https://openliberty.io/)
- [Wildfly](https://www.wildfly.org/)
- [Payara Micro](https://www.payara.fish/)
- [Quarkus](https://quarkus.io/) 
- [Helidon](https://helidon.io/) 

I was surprised to see Quarkus & Helidon on the list. I guess my [enemy’s enemy](https://spring.io/projects/spring-boot) is my friend…

Health 3.1 is the only [updated API](https://projects.eclipse.org/projects/technology.microprofile/releases/4.1) in this release with just [a few changes](https://github.com/eclipse/microprofile-health/releases/tag/3.1). MicroProfile 4.1 doesn’t include incompatible changes and now officially allows Java versions more recent than Java 8.

The MicroProfile Working Group [also forked](https://docs.google.com/document/d/1anTlBMyqMbEnRvC8Pz1pAo17Cejy4qUK9ZPbP7NDk8s/edit) the Eclipse Foundation Specification Process to release three times a year. I wonder how the new Eclipse IDE WG specifies things, given that it releases four times a year (see [issue #41](https://bpfnl.substack.com/p/how-to-build-java-applications-today-5ca)).

[Announcement](https://microprofile.io/2021/08/05/microprofile-4-1-is-now-available/)

***

#### Quarkus 2.1.1
Another week, another Quarkus release. This looks substantial, with the changelog [listing 117 fixes & improvements](https://github.com/quarkusio/quarkus/releases/tag/2.1.1.Final).

[Announcement](https://quarkus.io/blog/quarkus-2-1-1-final-released/)

***

#### Open Liberty 21.0.0.8
Open Liberty is IBM’s “MicroProfile as an app server” implementation. This is a bug fix release, with a few notable bugs listed in the announcement. The “full list of bugs fixed in 21.0.0.8” is unknown - the [provided link](https://github.com/OpenLiberty/open-liberty/issues?q=label%3Arelease%3A21.0.0.8+label%3A%22release+bug%22) shows no issues. 😩

And what’s up with that version number “21.0.0.8”, IBM? Isn’t that one digit too many? [Semantic versioning](https://semver.org) not working out for you?

[Announcement](https://openliberty.io/blog/2021/08/06/important-fixes-21008.html)

***

#### Apache Camel 3.11.1
[Apache Camel](https://camel.apache.org) is an integration framework that implements the “[Enterprise Integration Patterns](https://camel.apache.org/components/latest/eips/enterprise-integration-patterns.html)” from the [book of the same name](https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns). I admit that I copied this sentence from [issue #43](https://bpfnl.substack.com/p/how-to-build-java-applications-today-b5c) because I think most people still don’t know what the heck Apache Camel is. Well, now you do. 

This is the first maintenance release for the 3.1 LTS release that came out on my birthday at the end of June (see [issue #43](https://bpfnl.substack.com/p/how-to-build-java-applications-today-b5c)). It has 33 improvements and fixes that are listed in the [release notes](https://camel.apache.org/releases/release-3.11.1/).

[Announcement](https://camel.apache.org/blog/2021/08/RELEASE-3.11.1/)

***

## About
Karsten Silz is the author of this newsletter. He is a full-stack web & mobile developer with 22 years of Java experience, author, speaker, and marathon runner. Karsten got a Master's degree in Computer Science at the Dresden University of Technology (Germany) in 1996.

Karsten has worked in Europe and the US. He co-founded a software start-up in the US in 2004. Karsten led product development for 13 years and left after the company was sold successfully. He co-founded the UK SaaS start-up "[Your Home in Good Hands](https://yourhomeingoodhands.co.uk/)" as CTO in 2020. Since 2019, Karsten also works as a contractor in the UK.

Karsten has [this newsletter](https://bpfnl.substack.com/), a [developer website](https://betterprojectsfaster.com/), and a [contractor site](https://ksilz.com/). He's on [LinkedIn](https://www.linkedin.com/in/ksilz/), [Twitter](https://twitter.com/karsilz), and [GitHub](https://github.com/ksilz). Karsten is also an [author at InfoQ](https://www.infoq.com/profile/Karsten-Silz).