earlier today, someone I respect very highly asked the following question: "Is this a REAL problem… Do we really need to worry about being VB Developers or not ?"
I've given this a lot of thought and I believe it's a problem when the "great VB / C# divide" keeps me from using technologies that are of great interest to me. This isn't just about missing code samples anymore.
I am a VB.NET developer. Before that, for many years, I was a VB Developer. Prior to that, I was a BASIC developer, in all it's many forms. My first computer language was BASIC. I was 11.
When .NET came out, I had to make a choice (at least initially) of which technology to embrace. I looked at C# and VB.NET. I read and believed the many promises of equal productivity in both languages. Based on my previous experience with VB, I chose VB.NET.
I became an MCP, then MCAD, followed by MCSD (early adopter, thank you) all in my chosen technology of VB.NET. I became an MCT and taught others that .NET means you can work in the language of your choosing and be equally productive. Through my work in the .NET community, I was awarded MVP status, and this is my second year as a VB.NET MVP.
Choose whichever language you like best, it's all the same. This is the message of the MOCs. Now this message is proving to be inaccurate at best, and possibly a lie. Certain technologies are not available to VB.NET Developers. If I want to use them, I have to literally learn a new language... C#
Don't misunderstand, C# is a wonderful language, and I use it out of necessity. As a consultant, 2 of my last 3 assignments were in C#. I get around in it, but it's not my technology of choice. I prefer VB.NET. I work better in VB.NET. I work faster because I'm more familiar with VB.NET.
I THINK IN VB.NET. Every line of C# code takes me twice as long because in my head, I'm translating to/from VB.NET.
I could go into a long winded explanation of why I like one over the other, but that's irrelevant. I'm not here to argue that VB.NET is better or worse than C#, only that it happens to be better for me and that Microsoft is not living up to it's promise of language neutrality.
I am a VB.NET developer.
XNA uses the .NET Framework. There shouldn't be a problem.
Furthermore, it's not limited to just
XNA. To dismiss this as such is an insult to every VB.NET developer who has run into a wall when trying to embrace new technologies and still use his/her chosen language.
I am a teacher. I am a trainer. I am a software developer. I am a technology evangelist. I am a hobbyist. I am a code camp speaker. I am a VB.NET MVP. I am embarrassed that Microsoft deliberately chooses to ignore and neglect the same technology that I evanglize on their behalf.
I am also a game developer. I read about XNA, I write about XNA, I talk about XNA, I teach others about XNA.
The initial releases of XNA were promoted as "For Hobbyists." For the "fun" community. Look at all of the websites that proclaim XNA's ease of use and all the great and fun things you can do with it... VB.NET is a language that warmly embraces it's hobbyists and occasional programmers. By refusing to provide support for VB.NET, you are hindering the adoption of XNA (and other technologies) by thousands of VB.NET only hobbyists, enthusiasts & developers.
This is clearly unacceptable. So how do we fix it?
1. Providing code samples in only one language, for a technology that supports both, must be stopped. Find the resources to make it happen. If nothing else, utilize your MVP community to make it happen.
2. Releasing .NET compatible technologies that only support 1 language completely contradicts and undermines everything we have been told (and teach others) about .NET. This practice must also stop.
3. Change the perception of VB.NET. This may take longer, but when your own employees imply that VB.NET developers can't handle XNA (or other technologies) we have a problem. Teach them to stop referring to VB.NET and VB.NET developers in derogatory terms. (I wouldn't say this if I hadn't seen it happen.)
Microsoft, you have to set the example for the rest of us to follow. How can I possibly evangelize VB.NET if you won't?
Update:
Here's more disappointment.
- Windows Home Server SDK - C# Only
- Health SDK - C# Only
- Micro Framework - C# Only
- Mcrosoft Surface - status unknown