I don&#x27;t know about uptime, but most of the new programming languages have no undefined behavior (a Java program always behaves as a Java program whatever your bugs are), while most of the old languages do have undefined behavior (even Ada has garbage-initialized variables.) Hardware-wise, there&#x27;s memory protection and virtualization, whereas old Unix, Windows, etc. all let you crap all over any piece of memory because there was no efficient way to prevent arbitrary machine code from doing that. Security also improved tremendously, in relative terms.<p>So we&#x27;re far from unhackable, never-crashing software, but then cars, too are still relatively dangerous, just much less so than they used to be.<p>(Now one interesting thing that I wonder about, though, with all those thank yous going out to the government, Ralph Nader and other deities in sibling comments, is just how reliable this crash test is; meaning, what happens if you try other angles, which are not in the <i>standard</i> test.)