Which was your experience because you knew C. VB appealed to people who were not programmers (or not very good ones like me). Microsoft effectively tossed an easy to learn procedural language in the trash and said "go learn all these advanced CS concepts or stop writing stuff" to which most hardcore VB users chose the latter.
Maybe there's a mass cohort of people who were simply not going to learn something new, but in the light of most of twenty years hence, I think that they made the right call.
My experience all suggests that pure-VB (even .NET) is a treacherous dead-end, because it doesn't scale in terms of complexity and project size, and the point at which is stops scaling is often unrealized by its developers.
- VB(.NET) is amazing for small, simple gadgets.
- VB(.NET) is terrible for large or complex systems.
The problem is that VB is likely to be the only programming language that developer knows (moreso than developers in other languages).
Consequently, when they reach the end of the reasonable VB road... they will NOT say "Oh, I should learn C#."
They will say "How can I make this work in VB?"
And that's when you start to get business-ending unsupportable messes of spaghetti code that just barely work, on a good day.
Give a person only a hammer, and they'll find a way to make the entire world a nail.
This doesn't make sense to me. I worked in a 50/50 VB.NET/C# codebase for years and while I don't love the VB syntax, the two languages were 99% interchangeable. Nearly anything you can do in C# you can do in VB.NET, and vice versa.
Compared to what? It got support for multiple files and even luxuries like namespaces.
C# and VB.net are semantically 100% identical. Only difference is surface syntax, like begin end instead of curly braces. It scales exactly as well as C#.
I can't say I agree with this. My experience has been that developers who write things in VB tend to be self-taught and don't know how to scale up small gadgets into large systems.
Sure there was: C# didn't exist yet. It didn't exist for many years to come. It simply wasn't an option. C/C++ was, however.
VB.NET may be syntactically similar to VB6, but under the hood they were so different that migrating projects to VB.NET essentially meant a complete rewrite.
The biggest breaking change was the removal of the global Printer Object so any printing code needed a complete rewrite.
Maybe other shops had a lot of pure VB6 code, though.