Thats a fair point, but in the example you cite I am assuming you are talking about VB6 or earlier. The comparison between VB6 and C++ is pretty one sided. However, I would say that you can do some pretty goo stuff with VB6, but making it easy to expand and maintain is more the responsibility of the developer. The comparison between VB.NET and C#, in my opinion is a closer run thing. For any reasonably experienced programmer, learning the syntax of VB.NET, C# or any other language is probably less than a days work. The challenge is learning what the framework can do and how to do it! Once you've got that mastered you can use whatever language you like, and thats what I think is clever!