Maybe COBOL and mainframe wasn't that bad after all.
Maybe COBOL and mainframe wasn't that bad after all.
On the other hand, if they write the Java microservices now, running on JDK 11, on Intel x86-64, and then never touch it for 40 years. That will be like some COBOL+mainframe setup that no one knows how to fix, change, upgrade, redeploy, etc.
The tech companies using microservices generally have teams that constantly evolve their products, and over time they end up completely replacing services with new services, underlying infrastructure with new infrastructure, and so on. They will be fine with their Java microservices.
Governments that fund a project once and never touch it again, their technology will always be hard to maintain in 20+ years.
I've worked with people migrating off these machines, and yes they are everywhere in any business/goverment older than 20 years. Companies/Government orgs to this day have hpux/solaris/aix/zos/ztpf/nonstop/iseries/vms/NT/etc systems all over their critical infrastructure because those were the great/new technology at some point.
For whatever reason, overwhelmingly the rewrites turn out to be much more difficult than originally expected. Particularly as the original platform/software gets older. The people working on the original software stack weren't idiots, nor did they spend their days playing tetris. If that software has a couple man-decades worth of effort put into it, your probably not going to be able to rewrite it in less and maintain its functionality and quality.
I think the same phenomena exists with Linux and dynamic linking. Linux is incredibly less crufty than Windows because userspace compatibility isn't so long-lasting, APIs can be deprecated, garbage removed.