4 ms·
Such a tired saying. Software that is 'simple enough that there are obviously no bugs' can not have much more functionality than 'Hello world'. Once upon a time
by cjfd 6y ago
Such a tired saying. Software that is 'simple enough that there are obviously no bugs' can not have much more functionality than 'Hello world'. Once upon a time when software development was still a young field there was the illusion that software could be written in such a way that every part of the software was easily inspectable for bugs. In this age we should have learned a long time ago that this is in fact not the case for all but the most limited functionality.
- throwaway_pdp09 6y agoI'll take a stab and say, despite having not met him, that tony hoare is probably not witless or naive. In this he was referring to simplicity in implementation, and simplicity in the final product where achievable (AKA don't over-ask). I've worked with a guy that, given a choice, would pick the most complex and extreme way of doing things. I've also met plenty of manager types who will elaborate a simple functional and useful 90% product into monster with repeated scope creep, and who's going to say no to them? Another relevant Hoare quote for exactly this: "There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way — and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay." KISS, or do you disagree with that too?
- cjfd 6y agoI completely agree with the KISS principle and do indeed have to note that it is very often not followed. Much of the software out there could be simpler. But even if it were simpler one would not arrive at the point where the software is so easily understandable that there are obviously no bugs. You may need to implement, say, the rules of chess. This would be simpler if there was no castling and no en passant rules but the programmer does not get to decide the rules of chess and, hence, merely a library for implementing the rules of chess might not be so simple that it can easily be inspected for bugs. It certainly won't be that simple if you also take into account the rules of repeating the same position three times or the fifty move rule. Much of the software that is used in practice has to still do quite a few things more things than are needed for the rules of chess so it has not chance whatsoever to be at the point where all of the bugs are easy to spot.
- throwaway_pdp09 6y agoIn implementation terms there are simple ways and unnecessarily complex ways of doing things. As per my 1st post. In product terms there are definitely things that get pushed in that have no value, and that happens when there's too much cash around (hence "It is a price which the very rich find most hard to pay"). An actual example, a 'big data' project I was involved in. Loadsa big data software thrown at a pile of hardware. End result, fuck all of worth because it barely ran. A simpler system would have been a single decently configured and provisioned server which would have run so much faster (and cost a tiny fraction of the behemoth we actually built). I take your point about chess though. I think with a little discussion (time for which I guess neither of us have) we could come to an understanding and quite likely an agreement.