I could likewise argue that not choosing and using the tools available to you just puts you behind. C# offers safer goto just as it does foreach, yield return (which not everyone agrees is necessary), nullable types, even safer switches, and a whole slew of other language specific features. Why would anyone not use them just because they don't want to rely on a single languages's features? I mean, I could understand if you were trying to teach someone programming, you might not give them all the zero-pedagogical-value high-productivity shortcuts; and again, I wouldn't teach anyone to use goto, but in the real world, I'd raise a brow at anyone who avoids foreaches and properties. Also, it would be a long shot to say that no skilled programmers use goto, or that all programmers who use goto are unskilled.