3 ms·
This was very entertaining to read, and we all engage in these these analogies between software development and building houses or bridges or whatever. But nobo
by akkartik 10y ago
This was very entertaining to read, and we all engage in these these analogies between software development and building houses or bridges or whatever. But nobody talks about this implication: the reason construction is so much more reliable and robust is that our forebears tried lots of different houses and bridges before we settled on the ones we see today. That was only able to happen because nobody was insisting that all houses look alike and use the exact same materials. Since bits are easier to copy than atoms, we've made a fetish out of exact copying ("reuse"), and we peer-pressure each other to copy more with the complaint that they're "fragmenting" if they don't submit. I think it's extremely silly. When something like Android starts feeling it's too fragmented, that's just a symptom of deeper issues, and force-upgrading everyone to the newest version just keeps us from better understanding the deeper issues.
Tl;dr - if you want software to be more reliable, insist less on reuse, and allow copies to diverge more.
- digi_owl 10y agoNah. buildings are alike because we have measured, tested and documented every damn material for their behaviors under various uses. Thus if you want a wall of a certain size and shape, you have a list of materials to pick from depending on the weight is to carry. The reason people insist on upgrading to the latest and "greatest" software is because there are no rigidity to APIs etc. The Linux kernel gets more use than GNU/Linux user space because the kernel devs are held to a more stringent API rigidity. This makes kernel behavior predictable. Similarly, Windows, for all its warts etc, gets used in business because Microsoft built a reputation for predictable APIs. Only with 64-bit Windows can you no longer run 16-bit binaries (dating back to Windows 3.0!), and that's because the 64 and 16 bit CPU modes are mutually exclusive.