How to Build Java Applications Today: April 5, 2021
Tags: java, bpf
Published: 2021-04-05 22:11:08

## TLDR
I’m an InfoQ author and JAX London speaker, TIOBE Index April 2021, Google wins Java court case against Oracle, the road to Kotlin 1.5, and Apache turns 22.

## README
This is **issue #30** of my weekly newsletter, “How To Build Java Applications Today”. I read all the Java newsletters, so **you** don’t have to! And I try to entertain you while presenting Java news here. A German developer trying to be funny - what can go wrong here?!

If you like my newsletter, then [subscribe to it on Substack](https://bpfnl.substack.com)!

## Quote of the Week
*Being a woman is a terribly difficult task since it consists principally in dealing with men.*
[Joseph Conrad](https://www.brainyquote.com/quotes/joseph_conrad_105151), English novelist ([1857-1924](https://en.wikipedia.org/wiki/Joseph_Conrad))  

## Stand-Up
Since last week, two of my articles have been published. The first one [is at Baeldung](https://betterprojectsfaster.com/learn/article-baeldung-idea-shortcuts/) and describes the keyboard shortcuts that we need to edit, build, and run Java applications in JetBrains' Java IDE, IntelliJ IDEA. The second one is my [first news story for InfoQ](https://betterprojectsfaster.com/learn/article-infoq-android-app-quality/): Google launched a new quality section on its Android developer site this February.

Talking about firsts: I’m excited to present a [session at JAX London 2021](https://betterprojectsfaster.com/learn/talks-jaxlondon-2021-how-to-build-front-ends/)! This year, it’s a hybrid conference. The topic? "How Should Java Developers Build Front-Ends for Web, Mobile & Desktop Today?" I seem to have struck a nerve there: I submitted the same three pitches to four conferences, and they all picked my front-end talk. The fourth one isn’t a done deal, so my web page [only lists three right now](https://betterprojectsfaster.com/learn/#conference-talks).

## Bookmarks
### Java
#### TIOBE Index April 2021
Don’t read on if you can’t take the pain.

Seriously, this will hurt! 

Ok, I warned you. Java continues its sharp decline in this much-disputed but influential ranking. How sharp? Since April 2020, Java “lost a C#”. Wait, what? Java **lost** 5.5%, more than C# has in **total** today (4.9%). 

Hey, at least we’re still number two! Unfortunately, Python will probably claim that place soon. A bronze medal ain’t so bad either…

Any JVM language to the rescue here? There’s one, but it’s not the one you’re thinking about. In a sign that this index may not accurately reflect our project reality, **Groovy** saw a meteoric rise of 0.86% to 1.04% last year! That was good for place 17. Yep, Groovy! Are people writing [Gradle plugins in Groovy](https://docs.gradle.org/current/userguide/custom_plugins.html)? Or is [Grails](https://grails.org) having a resurgence? I’m as baffled as you are.

And **that** other JVM language? The one we’re all were thinking about? Kotlin is #39 with 0.32%. It has less than a third of Groovy’s percentage. Beats me!

[TIOBE Index](https://www.tiobe.com/tiobe-index/?20210304)

#### Google Wins Java Court Case Against Oracle
A long time ago, Oracle sued Google for its use of Java in Android. Oracle claimed that copyright law protected the Java APIs. That seemed like a dangerous precedent: Who else can copyright APIs and then sue us developers?

Today, the US Supreme Court declared Google’s use of Java in Android was “fair use”. Google won! I think that’s good news because it’s now less likely that somebody else will sue us developers for “API copyright violation”.

It’s a sad day for Oracle’s lawyers, though. Well, tough luck - **nobody** likes you guys anyways. Just [ask the Eclipse foundation](https://www.infoq.com/news/2019/05/end-of-javax-package/)! Probably even Oracle doesn’t like their own lawyers.

[Article](https://www.infoq.com/news/2021/04/java-api-fair-use)

### JVM
#### The Road to Kotlin 1.5
Since we’re already talking about not-so-popular JVM languages: Kotlin marches on towards version 1.5 in mid-2021. But it’s “just” compiler changes, Java feature support, and faster builds.

The majority of the work seems to go into a “common backend infrastructure” for the compiler backend. Confusingly, that **common** infrastructure consists of **three different** backends: [Kotlin/JVM](https://kotlinlang.org/docs/whatsnew1430.html#kotlin-jvm), [Kotlin/JS](https://kotlinlang.org/docs/js-overview.html), and [Kotlin/Native](https://kotlinlang.org/docs/native-overview.html). That’s what you get when you let the marketing guys speak - they were quoted in the article!

Then there’s support for records ([fresh in Java 16](https://betterprojectsfaster.com/blog/release-jdk-16#records)) and sealed interface ([less fresh from Java 15](https://betterprojectsfaster.com/blog/weekly-links-2020-10-22#jdk-15-sealed-classeshttpsfoojayioblogjdk-15-sealed-classes)). Configuration cache support for the Kotlin Gradle plugin speeds up builds.

And this is it for Kotlin 1.5, according to my fellow InfoQ write (I like the sound that  :-). Will this reverse Kotlin’s fortunes in the TIOBE index? I doubt it. But as we already established in the previous article, our project reality seems to not always line up with the TIOBE index anyway.

[Article](https://www.infoq.com/news/2021/03/the-road-to-kotlin-1-5/)

### Frameworks & Libraries
#### Apache Turns 22
I use Apache software every day: Mostly [Commons](https://commons.apache.org), but also [POI](https://poi.apache.org), [PDFBox](https://pdfbox.apache.org), and [Tika](https://tika.apache.org). They were pioneers for enterprise-friendly open-source libraries at a time when the [GPL](https://en.wikipedia.org/wiki/GNU_General_Public_License) stroke fear into the hearts of development managers everywhere.

Originally built around the [Apache HTTP server](https://httpd.apache.org), the [Apache Software Foundation](https://www.apache.org) now hosts 350+ projects. In Java land, we always cared more about [Tomcat](https://tomcat.apache.org) than HTTP Server. Even if we use Spring Boot - it’s the default [servlet engine there](https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-use-another-web-server).

And now Apache Software Foundation turns 22. Fittingly, they “conservatively value” their software offerings to be worth “$22 billion-plus”. Yeah, I don’t know either how they came up with that strangely specific amount.

Anyhow, Happy Birthday, Apache! I hope to write code still when you turn 44!

[Article](https://blogs.apache.org/foundation/entry/the-apache-software-foundation-celebrates4)

## About

Karsten Silz is the author of this newsletter. He has been a Java developer for 22 years.

Karsten grew up in East Germany, behind the Iron Curtain. He wrote his first BASIC program on a Sinclair Spectrum ZX81 in 1984 and never looked back. Karsten has a Master's degree in Computer Science from the Dresden University of Technology in 1996.

Karsten has developed software in five European countries and the US since 1996\. In 2004, he co-founded a software product start-up in the US. During power outages, the product protected TV, Internet, and phone services for 50 million North American households with cable TV. Karsten led product development for 13 years and left after the company was sold successfully.  

Since 2017, he has worked as a full-stack Java contractor for web (Angular) and mobile (Flutter) in Germany and the UK. He co-founded the SaaS start-up "[Your Home in Good Hands](https://yourhomeingoodhands.co.uk/)" as CTO in the UK in 2020. 

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).