I've noticed a strong parallel between Microsoft's .NET Framework 4.x and Oracle's JDK 8.x series. Even though newer versions keep rolling out — .NET Core, .NET 6/7/8, JDK 11/17/21 — these older versions just won’t die.
A few reasons:
- Heavy enterprise usage, especially in midcaps and MSMEs.
- Industry inertia — teams hesitate to rewrite working systems without a compelling business reason.
- In some cases, older stacks are more stable and “battle-tested”, especially for use cases like WinForms or thick-client apps.
It's kind of ironic that even today, the default .NET version baked into fresh Windows installs is 4.6 (or nearby), not the shiny new .NET 8/9. Meanwhile, Oracle still offers JDK 8 — albeit behind a paid support wall — much like Microsoft continues to patch .NET 4.x via Windows Update.
Eventually, these older branches will be sunset. But given their stability and widespread industrial use, I feel like that day might be decades away rather than years.
Curious to hear — how do you see this transition unfolding? And are there any good examples where teams actually migrated away from 4.x or 8.x successfully?
And the support lifecycle for .NET4.8 is ironically better than they are for .NET 6 (already dead) and .NET 8, because of the shipping-with-windows thing.
The odd-numbered .NET releases aren't even worth looking at from an enterprise perspective.
So yeah, there'll be a bunch of .net framework code around for a while.
That said, it's frustrating, because in some places the performance just isn't there, and there are so many nuanced differences between them there's a weird effect trying to switch between them.
You not only have to recall which APIs are available in each, but the performance differences between otherwise identical (or near identical) APIs.
reply