On 5/27/20, Ronald Natalie <ron(a)ronnatalie.com> wrote:
The large areas of undefined and unspecified behavior
has always been an
issue in C. It was somewhat acceptable when you were using it as a direct
replacement for assembler, but Java and many of other follow-ons endevaored to be more
portable/rigourous. Of course, you can write crap code in any language.
"It's not a bug, it's a feature"
C was written when the programmer had to be more rigorous instead of
just letting things slide and having the language do their thinking
for them. I remember being laughed at for using static arrays instead
of malloc() and friends, until people found out that safety-critical
systems were written the same way.
I have C code that was written 35 years ago that's still in
production. Back then, you had to be careful, and you actually had to
think about what you were writing.
We've gotten soft and lazy, and now we're paying for it.