4 ms·
Software is buggier than buildings because it is built on human made abstractions all the way down. You can reason about a structure if you know where the buck
by yoz-y 5y ago
Software is buggier than buildings because it is built on human made abstractions all the way down. You can reason about a structure if you know where the buck stops (Newtonian physics basically). Computer software isn’t that.
- hulitu 5y ago"Software is buggier than buildings because it is built on human made abstractions all the way down." Software is buggier because: - testing is expensive and takes time so it is a good candidate for cost saving - "atomic requirements" - there is no such thing. As long as your function is part of a program you cannot consider it separately. - "if it compiles ship it" - "let's turn on -Werror and ship it". Let the user fix the bugs. - "All the world is a VAX". ... and other such great ideas which have nothing to do with engineering. If builders build buildings the way programmers build SW: every year the building code will change and you will not be able to connect old buildings to utilities ( or they will be disconnected), nobody will agree on a mean of transportation of building materials and after you build it someone will steal all your belongings because the windows will have no locks.
- yoz-y 5y agoHow about, "if material science advanced as fast as computers, there would be 30% better insulation and 30% cheaper way to build 30% more efficient buildings every year". Software is not build on as stable of a basis because hardware changes and more is possible. E.g.: with on-device ML possibilities you can now do way more things, but now we also need to figure out how to best do them. The fact that we have more cores mean that we can serve more clients by a single machine, in-theory, but we also need to rewrite everything in parallel. When was the last time it was "worth it" to tear down a 10 year old building because rebuilding one would save enormous amount of money in a couple of years? I think there is a balance to find in both, I'm not saying we should rush into everything, but expecting that everything is always super stable, would absolutely end up in the nice features being available later than technically possible.