So I spend a good portion of my day bouncing back and forth between C# and VB.Net. I have been a VB programmer since vb5 and even earlier writing VBA and VB Script as well as ASP. Lately though it seems that no matter how hard I try, filling the software department at work is a challenge. There are just so few .Net programmers who want to work in VB.
With a new framework being built, as well as a web framework being built, it keeps popping into my head, do I just start farming for C# developers, and switch the house language over? Do I run a mixed house of C# and VB? Or do I keep with the die hard thought of VB.Net is an easier language to read and understand, as well as the massive amount of right pinkie work I would need for C#.
If you want proof of this issue, head to your local book store, you will find a huge array of "Start programming now in VB.Net!", or "Write a VB.Net program", and even the faithful "VB.Net for dummies", while across the shelf you will find more of "Pro C# Development in .Net 3.5" and "Expert Development in C#" etc... The quality of the books that are carried by book stores will show you what people are buying, as well as a good hint at what people are writing. There are just more people working with C# and adapting it over VB.
I am one of the favored arguers that C#, J#, VB.Net, Managed C++, etc... all compile to the same IL code, but when you look at the resources available to you, C# just proves to be more supported, not easier or more powerful (although the unsafe blocks in C# technically does make it more powerful, then again you have background compiling in VB.Net which makes it more powerful in design time, the list really does go on and on for the pros/cons).
Anyway, I picked up two new books from Apress last night for ASP.Net 3.5 in C# and C# 2008 & .Net 3.5. Ironically, they have sections devoted to VB.Net, so I guess I am not the only one out there who is seeing this pattern as well.
Oh, and another quick thought, who decided that no one writes sockets and remoting in VB.Net to not have mentioned it, other then a quick "this is a socket, and this is how to send "hi" back and forth". Yet in the five C# books I own, they are extensively covered, including a lot about how the Marshaling actually happens, downs and ups, as well as different situations to use them.