* Writing everything three times for three different computers with three different architectures in three different ways (e.g. numerical vs symbolic integration)
* Using obsolete programming languages for the same reasons doctors use latin
* Has to be usable by poorly trained pilots, while tired, on the other side of the planet in complete darkness with half the systems failing.
* Nobody dies if you web/game crashes. The plane has to still be flyable in unimaginably bad conditions like a total engine loss by deploying a windmill (ram air turbine), therefore every scenario is accounted for.
Caveat is we usually find new scenarios by crashing planes, not by thinking about them first. Kind of a definitional thing: if you'd thought of it, it wouldn't have crashed.