TL;DR
Java 17 feature-complete, TIOBE Index June, Java on RISC-V, Kotlin roadmap update, how to make a video with animations, Spring Boot 2.5.1, 2.4.7 & 2.3.12, and Spring Framework 5.3.8.
README
This is issue 40 of my weekly newsletter, âHow To Build Java Applications Todayâ. I read all the Java newsletters, so you donât have to. Itâs âJava news with a smileâ!
If you like my newsletter, then subscribe to it on Substack! Or read it on dev.to, the Java Cafe, or Medium. Even better: Share it with people who may be interested.
Quote of the Week
âNothing is said that has not been said before.
The wise words of Terence, Roman playwright (185 BC - 159 BC), spoken two thousand years ago, do apply to programming: Object-orientation and functional programming are both 80 years old.
Stand-Up
I got my next conference talk on Wednesday and still have to work on the slides and the demo. Well, nothingâs going to stop me from writing this newsletter tonight. And tomorrow is another day! đ
Code Review
Issue 39 from June 7, 2021
Why Do We Need Project Loom?
Reactive programming maximizes the amount of concurrent Java threads we can run. Project Loom reinvents Java threads because it also wants to maximize that number, but âdebugging a reactive program is so much harderâ. What I forgot to mention in that article was that reactive programming gives us more than just âmany threadsâ. For instance, backpressure is a way for the data consumer to tell the data producer to send fewer data. This isnât a feature for everybody, but itâs a reason to prefer reactive programming over Project Loom.
Prosus Buys Stack Overflow
I wrote âletâs hope that Stack Overflow will continue to serve us wellâ last Monday. On Tuesday morning, my browser threw âFastly error: unknown domain: stackoverflow.comâ at me when I went to Stack Overflow. What the heck?! When GitHub also was broken, I suspected something bigger was afoot here.
And I was right: A whole lot of sites were also down, including Spotify, PayPal, CNN, and the New York Times. All because of Fastly, a CDN provider. Most sites were up again after an hour and a half, including Stack Overflow. Happy copy & paste!
Bookmarks
Java
Java 17 Feature-Complete
Last week, we looked at âWhatâs new in Java 17?â (see issue 39). Java 17 is now feature-complete. Did anything change compared to last week? No.
So come September 14, Java 17 will replace Java 11 as âThe Java version that we can hopefully upgrade to, soo, or at some time, maybe next year or so?â. After all, JRebel reported in March that 69% of us still use Java 8 - and 15% supposedly Java 7 or older (see section âJRebel 2021 Java Technology Reportâ in issue 27).
So if youâre stuck on Java 8 and can handle the truth: Here are all the features from Java 9 - 17 that you donât have.
InfoQ article with Java 17 feature list
TIOBE Index June: Python overtakes Java for #2
The TIOBE Index is the much-disputed but influential, monthly programming language ranking. When we looked at the April numbers (see section âTIOBE Index April 2021â in issue 30), Java was about to lose its #2 spot to Python. It did in May and didnât get it back in June. đ© Python may even wrestle the #1 spot from C soon!
The good news: As #3 with 11.54% (-4.56% year-over-year), Java is safe from #4 for now. Thatâs C++ with 7.36% (+1.41%).
Why do we care about the TIOBE index? We care because other people do, like our bosses. Even they hear about the TIOBE index from time to time. And we donât want to get a âWhy donât you write your next microservice in Python instead of Java? I hear itâs quite popular these days!â from them.
Looking at this monthâs rankings also shows the limits of TIOBE. So Swift, the language for all Apple devices, fell from #11 a year ago to #16 this June and has 1.10% (-0.35%). Fair enough. But at the same time, Groovy shot from #31 to #12 and has 1.29% (+0.87%). Groovy? Really? Whoâs using it? Is Grails having a comeback, and nobody noticed? Or is everybody writing Gradle build scripts now with Groovy instead of Kotlin?!
Talking about Kotlin: The official language of Android is #34 with 0.37%. Again: Groovy is 3.5 times as popular as Kotlin. GROOVY!
Java on RISC-V: The New Kid on the CPU Block
Most computers that run Java use a CPU from Intel or AMD with the x86 architecture. Thatâs slowly changing as companies like Apple or Amazon use CPUs with the ARM architecture. ARM CPUs power all our mobile phones and tablets. Java 16 supports Windows on ARM, Java 17 macOS on ARM (see last weekâs issue).
Thereâs a new kid on the CPU block (diagram): RISC-V is an open-source architecture. So anybody can build a RISC-V CPU without paying Intel or ARM a license fee. Itâs the âLinux of CPU architecturesâ!
RISC-V started as a research project at the University of California in Berkeley in 2010. A number of companies are working on RISC-V CPUs, among them Alibaba. Thatâs the Chinese âcombination of Amazon, eBay, and PayPalâ that I just wrote about last week (see section âAlibaba Forks PostgreSQLâ in last weekâs issue).
Thatâs where Java comes in: Alibaba ported Java to RISC-V in their Dragonwell OpenJDK distribution (and yes, that website is not secure). How does it fare against ARM, its closest competitor? It currently has only 40% of ARMâs performance in the SPECjbb benchmark. They have a couple of ideas to make it faster. But Java on ARM isnât standing still, either, with Apple, Amazon, and Microsoft optimizing it.
So whatâs the future for Java on RISC-V?
Alibaba will first release Dragonwell for RISC-V before they contribute their port to the OpenJDK itself. So we could see RISC-V in other OpenJDK distributions in the future.
Hereâs an interesting tidbit: When Microsoft announced their own JDK, they claimed 500 thousand deployed JVMs âexcluding all Azure services and customer workloadsâ. Alibaba claims 1 million JVM instances - though this may include their Alibaba cloud service and customer workloads.
Frameworks & Libraries
Kotlin Roadmap Update
Kotlin users: Donât despair after seeing the TIOBE index! JetBrains, as the creator of Kotlin, doesnât either. Five weeks ago, I reported on the release of Kotlin 1.5 (see the section of the same name in issue 35). Now JetBrains gives an update on whatâs next for Kotlin.
JetBrains confused the heck out of me with the âcommon backend infrastructureâ for the Kotlin compiler in 1.5: There are three different compiler backends! Now theyâre working on a new compiler frontend. I think itâs going to be multiple ones because it only supports the JVM initially - and Kotlin/JVM is one of these three backends.
And because JetBrains wants Kotlin everywhere, weâll get another compiler backend - for WebAssembly. Thatâs a âbinary instruction format for a stack-based virtual machineâ, running inside all major browsers. Is it just me, or does this sound awfully similar to âJava byte code + JVMâ? Somebody at Oracle silently sheds a tear for Applets when reading thisâŠ
Kotlin will also get better for these iPhone developers who think mobile development is too easy: They add Kotlin on top of native iOS & Android UI code. Kotlin Multiplatform Mobile, in other words. Now Iâd rather remove one tech stack from mobile development than add one. You know, like Googleâs Flutter or Facebookâs React Native? But thatâs just meâŠ
What else? Kotlin/Native (think: GraalVM native image for Kotlin) gets a better garbage collector, Appleâs M1 Macs will get more support, and Kotlin will run better in the JetBrains IDEs.
One more thing: Dear JetBrains, you canât write, âCheck out our public roadmap to get a full picture of the 48 features that weâre focusing on right now!â (highlights are mine). Well, obviously, you can because you did. What I mean is: That sentence doesnât make any sense. The dictionary defines âto focusâ as âto cause to be concentratedâ. You canât concentrate on developing 48 features for Kotlin at the same time. Thatâs like saying, âIâm focusing on reading these 48 books right nowâ. I think the word youâre looking for is âscattershotâ: âbroadly and often randomly inclusiveâ.
Tools
How to Make a Video With Animations
A video is an excellent way to boost our presentations. But how can we make it more enjoyable? Let me tell you what I just did for a conference talk.
I recently submitted a talk to the âJava Forum Stuttgartâ. This year, I could add a one-minute teaser video alongside my pitch. So I created one that doesnât look as boring as the âtalking head videosâ I did in the past. See for yourself on YouTube! Itâs just one minute. Sure, itâs in German. But itâs about whatâs in the video. And I added English subtitles.
Did you see it? Itâs really just one minute!
Ok, so my main accomplishment is having the animations and myself mixed together. How did I do this?
Like in the movies - with a green screen. It was five steps for me:
- I used a portable green screen from Elgato. My wife filmed me with my iPhone in front of it.
- I then imported the video into my video editing software Screenflow. I applied the âChroma Keyâ video filter there. That replaced the green background with a transparent one.
- In Apple Keynote, I created the animations as a self-running slide show. I exported them as a video. Powerpoint can do the same.
- I imported this animation video into Screenflow and placed it behind the video of myself talking.
- Finally, I spent a couple of hours fine-tuning the animations to sync with my words and the video cuts.
One more trick: I shot my video in 4k resolution (3,840x2,160 pixels, at 30 frames per second). But I only exported it as HD resolution (1,920x1,080 pixels). This way, I could zoom into the video without getting a blurry result. Thatâs how I made the various zoom cuts in the video. No need to move the iPhone or zoom in while filming!
Releases
Spring Boot 2.5.1, 2.4.7 & 2.3.12
Last week brought a fresh round of Spring Boot maintenance updates. The latest production release 2.5.1 has 70 bug fixes, documentation improvements, and dependency upgrades. Version 2.4.7 has 36, while version 2.3.12 has 26.
2.5.1. announcement, 2.4.7 announcement & 2.3.12 announcement
Spring Framework 5.3.8
The âframework behind Spring Bootâ released version 5.3.8 with 35 fixes and improvements. Thatâs the version thatâs in Spring Boot 2.5.1 (see the previous section).
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 entrepreneur. Karsten got a Master's degree in Computer Science at the Dresden University of Technology (Germany) in 1996.
Karsten co-founded a software product start-up in the US in 2004. He 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" as CTO in 2020.
Karsten has this newsletter, a developer website, and a contractor site. He's on LinkedIn, Twitter, and GitHub. Karsten is also an author at InfoQ.
Top comments (0)