an application that has been stable for years might now fall over
When I read "an application that has been stable for years might now fall over" it just reminds me of the *KINDS* of unintended consequences these "developers" (with real-world blinders firmly in place) "feature creep" into things that have a large user base, only to "not give a crap" when things ULTIMATELY DO FALL OVER.
This is why I will *NEVER* do an application that depends on "the latest bleeding edge version" of something *LIKE* Node.js
We have seen this sort of thing from dependent libs at least a FEW times, particularly when developers capriciously "decide" to withdraw their content, out of spite or malicious intent, doesn't matter, same result.
The C language was originally set up to fail gracefully, which is a major reason why it's ideal for kernel development. In a typical kernel "thing" you already test for error conditions BEFORE you work with something. You force unused pointers and structures to a default state (typically 0 or NULL), and check for it at specific points where it matters. Errors become something you TEST for, and NOT something that CRASHES things.
Back in the day, the FRUSTRATION of a single line of code ending your run in "?Something error at line 500" is what (most likely) drove this feature in C. Also consider the "Unhandled Application Exception" box in Windows versions before 3.1 . That infamous UAE caused SO much frustration, it HAD to be dealt with.
Now Node.js has its OWN version of "Unhandled Application Exception" simply because what was once a warning that COULD BE IGNORED, is *NOW* a FATAL END OF THE UNIVERSE *ERROR*.
Thanks for that, Node.js "developers".