But no, of course I'm not suggesting that - and that's a good counter-example, thanks. Really, I believe that the idea that the OS distributes libraries like libjpeg as archaic (distros strike me as an awful idea, tbh). That's part of the application, and it's the application's responsibility to ship a fix.
That's theoretically pure but nutso in practice :)
You want to be able to update openssl for the heartbleed bug, and know "it's fixed on my system".
Not "welp, just as soon as i finish getting new binaries from the 500 people who produce the software packages i use, I won't have a problem".
There is no really sane way to accomplish this goal without decoupling binaries and libraries (AFAIK, love to hear any other idea. Things like common intermediate forms for executables would work if you didn't allow inlining/etc)
:)
Have you seen how many people suck at updating their software when their own code breaks? You really trust various projects shipping all the various programs you use to keep track of all the code other people wrote that their project depends on too?
To take an example from your cloud enabled world (kids these days) that should be easily understandable from your perspective: How many people honestly update their version of rails and Ruby when a new one comes out? And how often does that happen on most projects in practice?
Do you think it's going to be any different if we stop having ABIs?
This is the type of dream that leads directly to a cold dark nightmare if you ever tried to implement it farther than an HN comment.
it's the application's responsibility to ship a fix
Well, that's not going to happen in every case. In a world where AAA games are shipped almost completely broken (Batman passim), vendors are part of the problem.
We can go back to shipping software as complete units like we did in the cartridge/tape/floppy days. But doing so on anything connected to a network is extremely dangerous.
But no, of course I'm not suggesting that - and that's a good counter-example, thanks. Really, I believe that the idea that the OS distributes libraries like libjpeg as archaic (distros strike me as an awful idea, tbh). That's part of the application, and it's the application's responsibility to ship a fix.