Rule #1 of programming articles: Be wary of anyone who states "always" or "never" or "harmful" or "evil" with regards to a code construct/idiom/pattern.
What they're telling you, in effect, is that they know everything there is to know about X, and so you should trust their judgment and not think for yourself.
And in every case I've seen so far (including the famous goto debacle), they have merely focused on their pet code, ignoring the actual cases where the construct is useful (most often, they'll include trivial examples when the construct is meant to be used in complex situations), and this article is no exception.
When your argument becomes "we should throw this out because bad programmers use it badly", you have no argument.
What they're telling you, in effect, is that they know everything there is to know about X, and so you should trust their judgment and not think for yourself.
And in every case I've seen so far (including the famous goto debacle), they have merely focused on their pet code, ignoring the actual cases where the construct is useful (most often, they'll include trivial examples when the construct is meant to be used in complex situations), and this article is no exception.
When your argument becomes "we should throw this out because bad programmers use it badly", you have no argument.