Most public code from 50 years ago is the good stuff, like Unix. Well the stuff you don't know about is the bad stuff. There was a lot of it and even in your nightmares you couldn't imagine the kind of horrors in the average software than ran on big irons. You scoff at the idea of self-modifying code, who does that? Obviously a bad idea. You better get used to it quick, because self-modifying code is the de-facto standard and the absolute least of your worries. 4k line long undocumented subroutines written in undocumented languages which abuse hardware errors that were only known to the programmer. Said hardware errors were forgotten 1 week later, because some other code written afterwards doesn't even work because of the same hardware issue. Side channel attacks as a feature. Static data reutilized as swizzled instructions which modify that static data. Spaghetti code generating spaghetti code. Just genuinely terrible COBOL code that's probably still running today.
Efficient? Only sometimes. Possible to work with? Absolutely not. If we wrote code like we did back then, it would be common practice to generate and dump new microcode to your CPU thousands of times a minute. And no, in this scenario microcode is not any more portable, nor is it documented. You'd see shit like programming that uses MMU faults and stack semantics to implement garbage collection with minimal code. Breaking into the IME to use it as a thread supervisor instead of wasting actual CPU resources on one. Superscalar timing quirks intentionally utilized to eventually feed information downstream to a hand-rolled userspace scheduler that cannot be described even in the fringes of academic theory. It just came to the programmer in a dream. God knows what other "Not For End User Usage" obscure hardware features would get appropriated and abused to hell and back. I don't even want to think about what people would do to GPUs.
> Bill Gates tries to install Movie Maker
> January 15, 2003
The customers are responsible because they're the ones willing to accept shoddy software as long the price is right.
The developers are responsible because, let's be honest, Sturgeon's Law applies to them too and because they have more interest among them in slapping together code to make a fast buck than providing well written products.
The empires that Gates (who is actually a better coder than nearly all of his detractors if you look at his history), Bezos, Zuckerberg, etc., built are symptoms of the problem, not the problem itself. If it hadn't been them, it would have been someone else and the situation with bad software would be exactly the same.
The real problem is that selling competitive software is a terrible business. The "good" products are the free ones that are built by the community and maintained/provided unconditionally. To make money or compete with the big guys (like Bill, Bezos and Zuckerberg) you have to cut corners. Cut corners are the cornerstones of FAANG.
it has always been possible to make money with low quality product.
as long as there has been money, and product, there has been someone aiming to make a cheaper product to make more money.
software is a product.
the markets and the shareholders demand profits, so that necessitates corners be cut, usually. lest someone else get there first.
while the above is too broad, aggrandizing those greedy buffoons by giving them credit for this pattern, creation or refinement of it as an idea, is too much.
look closer at the billionaires and they start looking like any monkey. greedy, horny, dishonest. these just have a lot more bananas.