I think that Java has a really good solution to offer: Virtual Threads. They share the same interface with native threads and free developers from the burdens of async programming. You only need to take care of some things like accidental thread pinning (through legacy code) and the use of ThreadLocal, but otherwise this complexity is hidden.
IMO Subversion was never as much of a standard as git. I saw a lot of software that still used CVS back then, and even more that didn't do version control beyond versioned source tarballs.
I'd be happy to be proven wrong. You won't get there by designing a solution that is more ergonomic (if jj even is), but rather by designing one that solves problems that git doesn't solve. Also, you probably need to get some big and important software (like Linux, for git) to switch to using it instead of git.
Even then, I'm usually _not_ an early adopter of something as pivotal as a VCS. This isn't something that's easy to rip out or rewrite later. It shapes my workflow at a deep level and holds the history of my changes in its database. Only once it's being used by 25-50% of projects I encounter daily will I consider moving stuff I control to it.
For me at least, being statically typed is overall a strength. Yeah, it's not that much work to include types when declaring vars, but the benefits are you don't have the problems with types in expressions that you do with dynamically typed languages (Javascript for example, which is one the reasons why Typescript was created).
... although, Java have does support some dynamic typing, as you now don't need to have the type when instantiating objects, using the "var" keyword and the compiler will infer the type from the object that is being set to it (although, this is just syntactic sugar).
`var` has nothing to do with dynamic typing. It is still statically (compile time) typed, so the type can not change at runtime. Compare that to JavaScript where you could easily switch the type of a variable from Number to String.
agreed, it's not (as mentioned, it's just syntactic sugar). Still, how often is changing the type of a var needed? (besides minor casting issues)
And not saying that dynamic typing doesn't have a place, I really like working in Python, it's just that for more complicated code, prefer statically typed as it leads to less problems with your expressions. To each their own.
In my opinion Helidon is the most refreshing of these frameworks. It supports virtual threads from the ground up and comes with clean, function, mostly annotation free APIs. It really looks like a Java framework should look today.
Windows reputation is declining, so the operating system might be the actual crisis. Linux with modern desktops (e.g. Gnome 3) might fill the gap, but the market is far from broad adoption. Promoting and improving Linux desktop and apps would be a long endeavour, but betting only on Windows which degrades to a cloud and AI advertising surface might be fatal.
While that's true, I also think these things tend to happen as a gradual build up to the tipping-point effect where the zeitgeist shifts so suddenly that a massive player is suddenly irrelevant.
Microsoft is structurally incapable of making Windows better. Intel is intrinsically incapable of making x86 better (enough to matter). x86 hardware manufacturers are in a price race to the bottom, and there's no way around that.
Apple doesn't have any of those problems. Instead, more and more young people can afford and aspire to get a Mac. They want to buy software that works on the mac, and they'll want to write software for the Mac. The network effect compounds.
I swear that I read this comment in 2019, and it's still wrong today. Young people want iPhones, go look at Apple's revenue breakdown. iPhones and iPhone accessories dwarf Mac sales, the only comparable product in terms of revenue is the iPad. There is no evidence that Apple Silicon has changed that B2C story.
In the broader B2B sense, Apple lost pole-position to Nvidia. They're not the ecosystem kingmaker they once were, and their ARM architecture is failing to subsume demand for their competitors. The "Private Compute" Mac-based servers are going terribly according to reports, and their contribution to the chip shortage has even driven them to collaborate with Intel Foundry Services: https://www.macrumors.com/2025/11/28/intel-rumored-to-supply...
The zeitgeist exists on forums like this. Outside where people touch grass now and then, they largely don't care.
x86 OEMs are a race to the bottom because that's how the PC market has been for eons as PCs are a tool, not a status symbol, but how has x86 not 'gotten better'? It's significantly more battery friendly than it has ever been by a long margin, matching the M-series.
It's just momentum. You buy windows because you have windows. You buy windows because there's not really much of a choice. You have windows because you're not going out of your ways to reconfigure hundreds of laptops at your company just for your employees to be less comfortable with Linux.
Now introduce a choice… and things might change.
With the vast majority of software nowadays living in the browser, your OS matters less and less, especially for a business that buys machines for its employees.
OTOH, client Windows is the smallest and least important building block in it. Microsoft is helpfully also setting all their native apps on fire too and replacing them with webslop that runs equally poorly on MacOS, ChromeOS and Linux as it does on Windows 11, so the biggest concern is (A)AD integration and centralized management… and all three are decently manageable these days. If Microsoft didn't throw in the Windows licenses for free, more orgs would already be looking at ditching Windows 11, and if it keeps getting worse, even that won't look like a good deal any more.
Gradle could be used as an AI benchenmark on its own! The syntax of plugin DSLs changes all the time. Special credits could be achieved for handling old (Groovy) and new versions (Kotlin) of Gradle itself.
However, the cause it not really Java as such, but massive frameworks and tooling (e.g. Maven). Maybe AI will bring some fresh air to Java, because old truths might no longer be valid. But it will be hard to get rid of old habits because it manifested in AI training data.
https://docs.oracle.com/en/java/javase/21/core/virtual-threa...
reply