Eugene Leitl wrote:
> Don't we know this since early 70's? When was the Mythical
> man-month published?
Yes, but how many of the programmers you know have actually read it (or anything else on the topic, for that matter)?
> The obvious solution would seem to dispense with brittleware
> altogether. Gracefully failing systems suffering smooth performance
> degradation instead of catastrophic failure. Of course the IT
> industry would then have to admit the SantaFe people are not all
> freaks on acid -- which is tough to face. Also, it is somewhat
> late to throw half a century of IT traditions away and start from
> scratch. Taking lessons from squishware? God, I'd rather shoot myself.
Of course you build your code with gracefull error handling. That's assumed - otherwise you'll never break 10^6 LOC with anything useable. In the end it can't save you from the fundamental problem, however. Your error handling code will also have bugs, and so will the meta-error-handling code, and so on ad infinitum. Meanwhile, all that error-handling code is also making your programs bigger, slower, and more prone to really subtle errors that are especially hard to fix.
The only big breakthroughs that have ever been made on this front are based on the idea of getting some automated mechanism to generate part of the code for you. Even then there aren't any magic wonder cures. The compilers, code generators, expert systems and whatnot also have to be debugged after all, and they tend to be far more complex than ordinary code. So we move forward one small step at a time, and meanwhile the hardware guys are racing away from us.
Billy Brown, MCSE+I