Java Full-Stack Report June 2022: New & Noteworthy
Here are the most important news for Java developers from last month - in my opinion, at least.
|May 2022||April 2022||March 2022||February 2022||January 2022|
Table Of Contents
- What’s This?
- New & Noteworthy
New & Noteworthy
What Will Be in Java 21?
As I reported in February, Oracle has currently four Java multi-year initiatives: Loom adds lightweight threads and structured concurrency, Valhalla introduces types that “code like a class and work like an
int”, Panama improves how Java works with non-Java code, and Amber releases smaller features that make developers more productive. So, when can we expect them to ship?
Nicolai Parlog, a Java evangelist at Oracle, toured the conference circus with his “Java Next” presentation. His Devoxx UK talk from mid-May is on YouTube; the slides are here (navigate with the arrow keys, including down for details on slides three to seven). So, what will be ready for Java 21, the next Java LTS release? I focus on LTS releases here because New Relic’s analysis of millions of production JVMs has shown that “no non-LTS version has ever passed 1% market share”. New Relic is a full-stack observability company and recently published a “State of Java” report.
Now these days, new features don’t just appear in Java. Instead, they ship as a preview first - and multiple ones at that. So in order to make it into Java 21, a new feature probably has to ship as a preview in Java 19 and Java 20 first. Which also means: If it’s not in Java 19, it probably won’t be in Java 21.
- Amber: Finish pattern matching (JEP 427 is the third preview for Java 19) and add patterns for records (JEP 405 is the first preview for Java 19).
- Panama: Foreign function & memory API (JEP 424 is the first preview for Java 19).
- Valhalla: Probably nothing as value objects don’t seem to ship in Java 19.
- Loom: Virtual threads (JEP 425 is the first preview for Java 19) and maybe structured concurrency (JEP 428 is the first preview for Java 19).
IntelliJ Will Look Like Visual Studio Code…
In January, I wrote about an upcoming JetBrains product called Fleet. JetBrains makes IDEs like IntelliJ or WebStorm. Fleet looks and acts like Visual Studio Code, Microsoft’s free and popular cross-platform, cross-language IDE. Back then, IntelliJ said that “Fleet doesn’t replace our existing tools” and promised “to invest in all our IDEs”.
It now looks like part of the JetBrains investment is to make the existing IDEs look like Visual Studio Code: JetBrains announced a “new UI” coming to all its product. In short: It looks like Visual Studio Code! But a picture says more than a thousand words. So here’s the current IntelliJ UI with a dark theme:
And here’s the new UI:
Yep, it looks a lot like Visual Studio Code. Just look at all the buttons and tool windows on all sides of the IDE in the current UI. Most of them are gone in the new UI, possibly replaced by a “…” junk-drawer menu on the top left, that pinnacle of UI design. Now we can’t judge a whole UI by a single screenshot. But as critics pointed out in the comments of the announcement, the new UI certainly seems to require more clicking. Or maybe this is just an elaborate plot to get developers to finally learn all these nifty keyboard shortcuts? That worked in Visual Studio Code…
JetBrains just started a preview program for the new UI. It plans to ship it in 2023. The current UI will still be an option “for at least a year after the new UI becomes the default”.
…But Visual Studio Code Is Not an IntelliJ Replacement
Speaking of Visual Studio Code: Microsoft doesn’t see it as a replacement for full-fledged IDEs like IntelliJ. Instead, it’s a lightweight companion. Says Martijn Verburg, Principal Engineering Group Manager (Java) at Microsoft, in a podcast interview: “Visual Studio Code, it’s not aimed to be a fully-fledged IDE. It’s not made to compete with IntelliJ directly in that realm. But it is really designed for those kind of full-stack microservice developers, I think.” This is part of an answer to a questions that starts at 10:37 in the podcast.
I’m sure JetBrains is relieved to hear that. But I don’t think JetBrains is off the hook here:
- First, just because Visual Studio Code can’t do something today doesn’t mean it won’t do it tomorrow. It’s called “low-end disruption”: A product starts at the low end, gets customers, gets better, and eventually replaces the market leader.
- Second, targeting “full-stack microservice developers” makes sense for Visual Studio Code: Multi-language development has always been the achilles heel of JetBrains. Doing Java, Python, and web development? That’s three separate IDEs for you - IntelliJ, PyCharm, WebStorm. They all use a ton of memory. And you can’t officially share plugins or keyboard shortcuts between them! I know that you can get some cross-language development done in one IDE - I do Angular web development and Flutter mobile development in IntelliJ. But you don’t get all the capabilities from all the JetBrains IDEs in, say, just IntelliJ. And that’s not how JetBrains markets its IDEs, either.
- Third, if JetBrains copies the Visual Studio Code UI (see previous news item), then why not use the original - Visual Studio Code?
Native Java Makes Java in the Cloud Cheaper (Complete Edition)
Java dominates enterprise applications. But in the cloud, Java is more expensive than some competitors. Native compilation with GraalVM makes Java in the cloud cheaper: It creates applications that start much faster and use less memory.
So native compilation raises many questions for all Java users: How does native Java change development? When should we switch to native Java? When should we not? And what framework should we use for native Java?
I’m the editor of an article series on InfoQ that provides some answers. The series is now complete with these articles: GraalVM, Spring Boot, Quarkus, Micronaut, lessons learned, and standardizing native Java.
Java turns 27
Our favorite programming language turned 27 last month. Happy birthday! And if you want to know how it all started, look no further than this old article from 1995. James Gosling, Project Green, Oak (the original name of Java), set-top boxes for Time-Warner, a pivot to the web, speculation about how Microsoft would respond - it’s all there. And yes, that “Eric Schmidt, Sun’s chief technology officer” is the guy who was CEO of Google from 2001 to 2011. It’s a small world!