Welcome to Office Zealot Sign in | Join | Help

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.....

 

 

Published Friday, November 05, 2004 10:10 AM by rod

Comments

# re: A Tale of Two Languages (VB.NET and C#)

Friday, November 05, 2004 1:17 PM by Anonymous
Makes sense when you think about it: The VB team makes decissions with Mort in mind. Developers at MS on the other hand do not identify with Mort.

# re: A Tale of Two Languages (VB.NET and C#)

Friday, November 05, 2004 2:07 PM by Anonymous
I think your theory is sound, but your suggestion is just silly. It's clear that comes from your history in the FoxPro world. But what isn't clear is that you have any notion whatsoever of how silly their militancy always looked to everyone else. Suggesting that VB.Net users marginalize themselves in the same way will only -- get this -- further marginalize them. Don't you see? The VFP course (getting all pouty, and demanding attention) is self-defeating.

# re: A Tale of Two Languages (VB.NET and C#)

Friday, November 05, 2004 2:14 PM by rod
Interesting point Karl. What would you suggest is a good course of action ? It seems that the VB.NET community is facing the same issues faced not so long ago in the VFP world.

FWIW, I don't see this as being pouty. But being demanding as a customer. We are customers of MSFT and we also create new customers for MSFT so they should help us out by not marginalizing the product they sell. Their actions speak very loud.

Good yo hear from you BTW. Are you still in Vancouver WA ?


# re: A Tale of Two Languages (VB.NET and C#)

Friday, November 05, 2004 5:23 PM by Anonymous
Sorry for the "pouty" bit. Strong word, although it probably conveys the appearance to many. It sure did to me, back during the (good days) of "Classic" VB vs. VFP wars, er, discussions.

I've not found any benefit whatsoever to being demanding as a customer with Microsoft. Were that effective, the entire .NET initiative would've been dropped long ago. Or, at the least, a version of VB that respected the investments of six million existing customers would've been provided for the platform.

Their actions -- Microsoft's -- do indeed speak very loudly. It's incredibly clear that they consider VB to be a language for disposable usage only. The history is unrelenting in this message.

Bottom line, Microsoft will do what it will do, customers be damned. That's the way monopolies work. The only time developer tools have become truly better at their hands were when significant competition was keeping them honest. Right now, developers using .NET are simply tools in their quest for domination.

(Yeah, still in Vanc, thanks...!)

# re: A Tale of Two Languages (VB.NET and C#)

Saturday, November 06, 2004 12:23 AM by Anonymous
Some good points. Here are my twin copper Lincolns...

I'm a C# guy, but that's only because I used C and C++ for years. I think it's more a matter of comfort and familiarity.
I'm a bit clumsy with VB.NET, sort of like someone ice-skating for the first time.

I do see one exception on the issue of MSDN white papers and examples. Samples for Office Automation are more often written in VB.NET than C#.

After working on projects where I did some fairly heavy stuff with Word and Excel, I can see why. Office Automation is a complete pain in C#. You have to write more code, and certain collections don't seem to get populated the same way they do if you're using VB.NET. So I wound up accessing things through VB.NET. At least I had a choice!

I've also had difficulty getting certain COM components to work with C#. I was trying to get a Crystal 10 COM component working with .NET - it worked in VB.NET but not in C#. But I wound up using the Crystal .NET assemblies anyway, so it didn't matter.

So between that and my experiences with Office Automation, I've been wondering if COM is better accessed from VB.NET. (Not an official statement, just a hunch).

One final point: in a recent issue of Fox Advisor, Ken Levy talked about the differences between C# and VB.NET. He said that C# is generally for developers who like to write and control their code, and that it's very source code-centric. VB.NET is more RAD and ease-of-use oriented and provides access to the power of the .NET framework.

Hmmm.....

Kevin

# re: A Tale of Two Languages (VB.NET and C#)

Monday, November 08, 2004 9:56 AM by Anonymous
Rod,

I agree that VB.NET is the tool to choose for productivity, I use C# for pretty much the same reasons as Kevin, however from a performance point of view VB.NET code generation currently suffers.

http://wesnerm.blogs.com/net_undocumented/2004/01/demand_more_fro.html#comments

According to a response from the VB.NET technical lead, the reflection issues are being/have been dealt with in Whidbey.

Neil

# re: A Tale of Two Languages (VB.NET and C#)

Monday, November 22, 2004 4:42 PM by Anonymous
I agree with the last message and the above. Not everything can be made with C# or at least as easily as in VB.NET. I'm a VB6 developer, and have been working with VS.NET trying to port some projects that used a Java connector (JiGlue, from FileNet) and have had troubles. Had to make it in VB.NET since C# didn't support (in that version, at least) an easy way to invoke methods from an Object object.
And the other point is that C# and VB.NET don't produce the same IL code.

# re: A Tale of Two Languages (VB.NET and C#)

Wednesday, January 12, 2005 1:14 AM by Anonymous
C# code is nothing more then vb.net writen in syntax of traditional c.

# re: A Tale of Two Languages (VB.NET and C#)

Friday, November 25, 2005 2:09 PM by Anonymous
can any one suggest which language i should take to enhance my career? (either VB.NET or C#)

NOTE: I m working VB,ASP. I planned to take MCAD.

# re: A Tale of Two Languages (VB.NET and C#)

Monday, February 27, 2006 3:42 PM by Anonymous
I have a similar question regarding c#

Is it not possible to use logon methods for PE and CE of filenet using C# code?

Anonymous comments are disabled