Combined with the current culture of "evergreen" software that is always connecting to online sources (even if it's installed locally), applies automatic updates, and doesn't support old versions in parallel with newer ones for extended periods, it's like we've regressed at least a decade in the quality of the software we use. Although next week it could be 13 years. And if you refuse to play, you don't get security or compatibility updates either.
The likes of Google, Apple and Mozilla bear great responsibility for actively promoting the evergreen and ratchet models: browsers, mobile operating systems and web and mobile apps have probably been the main drivers, and Apple has gone even further by weaponising its control of the app ecosystem via its App Store monopoly. However, it's not just web and mobile that are broken; more recently, it's been creeping into desktop applications and even desktop operating systems (Windows 10) as well.
Just as it's been the case with user-facing software, so it has also been the case with development tools. We seem to have trained an entire generation of young developers now who have no concept of maintaining stable APIs, using open standards for data formats and communications protocols, designing for compatibility and portability, and so on. Perhaps unsurprisingly, this is also much worse in the worlds of web and mobile development.
It's a plague, and we need to kill it with fire.
Would a team choose the same tools if they were starting those apps with a blank canvas today? Probably not. Is anyone going to throw away a decade of working code to rewrite the apps that already exist? Also probably not.
The other day I opened a Vue project from 2-3 years ago and after installing deps with NPM it reported something like 50 critical vulnerabilities. Fine, I'll update dependencies. After doing that nothing worked anymore. The Webpack config didn't work, the Webpack loaders for Vue didn't work, etc. I had configured this project with an "old" version of Vue CLI and now everyone had moved on from that and changed their APIs.
I had a similar problem with an in-house Electron app from 3-4 years ago. A user reported a problem running the app on high Sierra. So I updated Electron to the latest version and compiled but then I got some new errors because Electron changed something and it broke Gulp. So I updated Gulp and turns out they changed their API too and I had to change the logic... I lost a day with this.
You can open an old jQuery project from 10 years ago change some stuff and everything just works, even after updating jQuery to the latest version.