Quote:Original post by empirical2The difference is in the potential cost of failure, and whether it justifies the increased cost of development.
Well personally I would not distinguish between stable and robust. If code is going to fall over because the user does something stupid (100% dead cert) I do not consider it to be stable.
There are fields (airport traffic control, nuclear reactor control, medical equipment, etc.) where robustness is not only desirable but required. In these fields, even a single error among millions of lines of code can cost people their lives, and thus you spend an incredible amount of time/money/effort in making sure that no error can ever occur, and an even larger amount on making sure that when it does occur, you can handle it gracefully.
For normal software (applications, games, etc.), we don't need to handle every eventuality robustly. There are many cases where it is acceptable to just crash, for example: power-outages, hard-drive crashes, a dying memory chip returning random values, some random idiot manually corrupting your stack with a debugger, ...