A Tale of Two Languages (VB.NET and C#)
I have been a software developer for over 15 years now. When I started my career I worked in FoxBase+ which was a dBase clone. I later moved onto FoxPro, FoxPro for Windows and eventually Visual FoxPro. Over the last 5 years or so I have moved added other tools to my arsenal like SQL Server, Visual Basic and Visual Studio into the SQL Server and VB 6 world along with Visual Studio .NET
In 1992 Microsoft acquired Visual FoxPro from a small company in Ohio. From that time on there was always uncertain Microsoft would do with that product. Over the last 12 years Visual FoxPro while a great development tool has always stood in the shadows of Visual Basic and Microsoft Access. All along Visual FoxPro was used to create some very large scale applications while getting little or no real marketing from Microsoft.
So what’s the point of all this history…. Well it’s like this…. VS.NET has two main languages Visual Basic .NET and C#. C# is the language that seems to have the mind share at Microsoft while Visual Basic .NET stands in the shadows. So why is this? Well my theory is this…Microsoft cannot market two products that compete for the same space. Their history with Visual FoxPro and Visual Basic proves this. Both of these products worked equally well for building line of business applications. But Visual Basic owned the mindshare within Microsoft. This is the case with C#. C# owns the mindshare of the community within Microsoft. It will always own the mindshare. Microsoft does not have the tools necessary to change the way the wind blows. Why does C# own the mindshare in Microsoft and outside of Microsoft? Here are my two ideas….
First…it was first. From what I understand (I was not there) the first part of .NET shown used C#. This is the first mover advantage. Like E-Bay and Amazon itFirst mover advantage here.
Second… All the folks working at Microsoft come from a C, C++ or Java background. They are more comfortable with things like {} and ; and case sensitivity. It’s hard to change people’s habits. When a Microsoft employee works on a paper for MSDN, a book for MS Press, an article for a magazine, a lot of them will resort to using C# instead of VB.NET.
So what is a VB programmer to do… Sit back and be productive that’s what. Get to work and use VB.NET. It works equally as good… heck they all compile to the same IL anyway so what’s the big deal. If people try to say C# is better technically let them waste their breath. There is no real difference under the hood. Heck I could say VB.Net is more productive because of its better intellisense, background compiling, etc. The C# crowd will come back with other merits. It’s all a waste of time.
Microsoft will never turn this ship around. They will never market VB.NET and C# equally. I’m not talking just $$$ here. I mean with internal mindshare at Microsoft. So as a VB developer I would say quit wasting the bandwidth hoping Microsoft will change. They don’t have the ability to do so.
But if you want to take a constructive approach here. Next time you are at a demo and a Microsoft employee is showing C# only examples ask them where their VB.NET demos are. Force the issue. Be rude if you have to. Microsoft should have a policy of showing both languages.
At conferences, user groups, sales meetings make sure and ask for VB.NET. Keep em honest.
BTW... I am a VB.NET MVP.....