"...some of the smartest people on the planet use it to write infrastructure that regularly fails catastrophically."
Not one thing said in that sentence fragment can be shown categorically to be true. Yo, software has defects. Some get past everybody. To wit:
1) It's 2016. There's a lot of old code out there. Old code tends to be C.
2) UB and implementation-defined behavior are just a fact in the language. This being said, they're not THAT hard to avoid.
I think the thing is whether or not people are habituated to thinking in constraints. People who aren't will be more dangerous with a C compiler than those who are.
FWIW, I've heard the phrase "knuckledragger C programmer" more than once. As a C programmer, it might even be apt. :)As in "monads? We don't need no steenking monads!" :)
( this being said, I use something akin to a monad pattern quite frequently and in C )
Not one thing said in that sentence fragment can be shown categorically to be true. Yo, software has defects. Some get past everybody. To wit:
1) It's 2016. There's a lot of old code out there. Old code tends to be C.
2) UB and implementation-defined behavior are just a fact in the language. This being said, they're not THAT hard to avoid.
I think the thing is whether or not people are habituated to thinking in constraints. People who aren't will be more dangerous with a C compiler than those who are.
FWIW, I've heard the phrase "knuckledragger C programmer" more than once. As a C programmer, it might even be apt. :)As in "monads? We don't need no steenking monads!" :) ( this being said, I use something akin to a monad pattern quite frequently and in C )