> ...how could mere humans have created such an enormously complex technological edifice on top of such shaky foundations?
Mere humans have split the atom, mapped the human genome, walked on the surface of the moon, transplanted organs, achieved flight, cloned a sheep, and invented apple pie. I'd say next to these accomplishments, the act of writing good software using tools that make some aspects of the process difficult is hardly an achievement.
I agree that hysterics claiming we are a hair away from a total imperative meltdown are ridiculous. However, I think that "make some aspects of the process difficult" is a reasonable assessment of imperative, low-level programming. Can you tell me you've never been bitten by an unexpected null? Or, that you've never tired of having to write a class that's essentially a wrapper around a List/Map because the interface is not convenient or fluent?
I'm not suggesting we get a mob together and overthrow the tyrannical imperative government, leaving corpses dangling from the gallows as a warning to the next person who wants to mutate an input parameter. I just want the discussion to move away from "C++ is fine, quit your bitching" - this is totally unproductive.
If medical doctors thought like this, laproscopic surgery would never have been taken seriously since conventional surgery was totally adequate. "I mean, what's the problem? Yeah, being sliced open creates very long recovery times for people and is more likely to lead to infection, but that's just something we have to deal with. An incalculable number of lives have been saved through conventional surgery, so I really don't think we need to consider new methods."