Why don't people think VB is a good programming language to learn?
This is a commonly discussed issue on the VB forums and on the email groups, etc.
We design VB to be usable by people who don't necessarily have a lot of training in programming (business people, students, hobbyists, etc), so we make it as "easy" as we can. This leads to the misconception among some folks that VB is a "toy" and not worth the attention of serious developers.
I think C# is favored by a lot of developers because it's familiar syntax. Many people who are already familiar with C or C++ can learn C# quickly, whereas VB might be a little harder to get used to. I originally used C++ on nearly all my college projects, but now that I use VB every day, I definitely favor it over C#.
A lot more enterprise-level applications are coded in C++ or C, and there are things (like memory management) that can be done in these languages that can't really be done in VB. You couldn't code an OS in VB, for example.
Ultimately, different languages are out there for different purposes. If your goal is rapid application development, I think VB is fantastic. If you want to work on an OS or compiler or something like that, probably C/C++. If you're still getting started with programming, I think VB is a great place to start, but you'll eventually want experience with several different languages so you are able to solve many different kinds of problems, etc.
Hope this answers your question somewhat.
- Bill Horst