|The hotshots who think they'll never make a mistake so they don't need "safety nets" ...|
I agree, those who actually think they make no mistakes are wrong. As you said, mistakes are made.
But too many times I've heard people excuse sloppy coding with "The compiler makes it right."
The promise of "safety nets" creates lazyness and carelessness.
I'm speaking from experience.
|... doing something the hard way when there was an easier, equally effective way.|
That's my point.
If you know your stuff well enough, i.e. you learned every detail of it, there is no "hard way".
There's just "the way things are done".
To someone who only uses click-and-drag programmming even BASIC looks like doing it the hard way.
Python isn't easier than C++ - if you're well trained.
|Second, regardless of how careful or how thoroughly someone tests, if something is error-prone an error will eventually slip through.|
Yes, that's why the argument of "less errors thanks to a 'better language'" is moot.
The amount of errors that are made depends on the skill of the coder.
A poorly trained programmer makes more mistakes even with a "save" language than a well trained programmer in a "less save" language.
Besides, why is everybody so much against about learning?
When did that happen?
|There's value in replacing a construct with a less error-prone one.|
It is. However, without learning how to use it, you don't benefit from it. Again, it comes down to learning.