Now, I can't say that I'm happy about that. One of the major reasons for the .NET Framework was to make all languages first-class citizens. C#'s ability to use unsafe code shouldn't give it preferential treatment for gaming.
That said, there's a high likelihood that we'll be able to hack a way to use VB 2005, provided we don't link in the
Microsoft.VisualBasicnamespace, and I'm actually okay with that. Why? Two reasons. First, most of what is in the namespace is old helper functions that are duplicated in the .NET Framework already. Second, I'm fine with working within the System namespace structure.
I don't need to use
Len(str)when I can use
str.Length()instead. I don't need
Trim(str)when I can use
str.Trim(). The only thing that most of the VB helper functions in the
Microsoft.VisualBasicnamespace buys us is an extra level of error checking by checking for strings and other objects being equal to
Nothing. No offense, but if something is set to
Nothinginside the game and we didn't set it to
Nothing, something is definitely wrong to begin with and we need to be trying to find the root cause, not letting the function hide the error from us.
While we'll potentially be losing some helpers from
Microsoft.VisualBasic.Devices, again, most have fairly close compatriots inside the System namespace.
I love VB, and will do whatever I can to make sure that XNA and VB find a way to work well together, but if getting my code onto the Xbox 360 means ditching a mostly-redundant namespace, I'm fine with saying "bye bye."