Good reasons, all; but here’s 1 big reason to not move on from Java 8:
Your fucking application is pegged to 8 and anything higher won’t work.
It’s currently my life. The Application That Shall Remain Nameless is a big enterprise SaaS product whose overall environment I cannot influence. They said “you have to use 8”, and so, I have to use 8.
Tangential, I never understood why a lot of the people writing hipster blogs and going to meetups were rarely coming from big enterprises, it was always people at smaller companies and startups (or the recruiters from said big companies).
A lot of the Java blogs at its heyday were focused on seemingly boring stuff; like “ways that HashMap synchronization can produce inconsistent results” or whatever. Rarely, if ever, did they talk about bleeding edge stuff, frameworks, or endless puffery about whatever editor everyone was using this week.
I think I know why now.
The enterprise is a conservative, risk-averse place that puts emphasis on maintainability and support, not “programmer happiness”, because real money is on the line – and not someone else’s money, as in the Silicon Valley VC ecosystem. No one cares about some web framework with hot reloading or whatever; they’re using off-the-rack LTS JBoss or whatever.
So I’m stuck. The Application That Shall Remain Nameless is a straight-up far-upper-right-Gartner-Quadant platform, with a bunch of Fortune 100 users. It will likely be on Java 8 until the heat-death of the Universe. (There are no plans to move it to 9 or greater, or so I’m told.)
Which sucks because honestly, Java 9+ looks like a genuinely good platform. Not good enough to base your multi-billion-dollar company on without a few years of evaluation, testing, and research (by which time, Java 22 will be released). But good.