YOUR FEEDBACK
Adobe Flex 2 - Answering Tough Questions About Enterprise Development
A Correct Person wrote: Denis Roebrt commented on the 21 Aug 2006 "Tough Que...

SYS-CON.TV
TOP MICROSOFT .NET LINKS


Opinion: Why C# Is Not a "Better" Language Than VB.NET
"People who talk that way about VB.NET are confusing three issues," says Michael Stiefel

Digg This!

When the speakers on the .NET track of SYS-CON's Web Services Edge 2005 East conference got together, Carl Franklin and I were talking about why people think that C# is the "official language" for .NET.

I told Carl that, even though most of my consulting is in C#, I think that attitude is wrong. I believe it is important to elaborate why I feel this way.

People who feel that VB.NET is an inferior language to C#, or that somehow C# is a "better language", or the "official language" for accessing the .NET Framework Class Library are just plain wrong. My personal opinion is that I prefer C# to VB.NET because I like the compact syntax among other things, but that is a personal judgement.

People who talk that way about VB.NET are confusing three issues.

First, suitability to access the Framework Class Library (FCL). Every example in my book Application Development Using C# and .NET has been translated into VB.NET and works exactly the same way. I have used the same courseware for both C# training and VB.NET training with the only difference that the examples were in the different languages. From the point of view of the FCL, everything C# can do, VB.NET can do as well.

Second issue: suitability to a given task. Equality before the FCL, or the Common Language Runtime is not everything. Perl.NET can do things that C# cannot. Does that make Perl.NET a better language than C#? No. It just makes it a better choice in some cases. If you need to use unsafe mode, you need C#. You cannot overload operators in VB.NET. You might find VB.NET's late binding feature more convenient than using the reflection API in C#. You might like background compilation in VB.NET. It is is possible, that for certain features the IL that C# generates is more efficient than the IL that VB.NET does. I do not know if this is true, but even if it is, it probably does not matter for most applications. After all, in some performance situations managed C++ is better than C#. For people interested in the differences between the languages look at O'Reilly's C# and VB.NET Conversion pocket reference.

FInally: de gustibus non disputandum est, there are matters of personal preference. I like C#'s compactness. I think it has certain advantages, but that is a matter of taste. Taste is important even in technical matters, but do not confuse taste with other factors, or mistake taste for intuition.

I wish VB.NET programmers a long and productive life. VB.NET programmers should not feel inferior.





[Read Michael Stiefel's blog, on which this Opinion piece is based, here.] 

 

About Michael Stiefel
Michael Stiefel, principal of Reliable Software, Inc. is a consultant on software architecture and development, and the alignment of information technology with business goals. His current work involves training in distributed applications development, and in software best practices, in .NET, C#, Web services, C++, SQL Server, COM, DCOM, and MTS. He advises on IT strategy and planning, including budgeting, hiring, and growth management. Michael is involved with design and implementation of middle-tier and back-end components for transactional n-tier Internet and Intranet applications including Web services. He also is responsible for requirements analysis, project plan development, and design document development. He serves as an Expert Witness for intellectual property cases. Stiefel was a Principal Software Engineer for Prime Computer, developing a mechanical CAD/CAM database system. He also worked for Microsoft assisting their Fortune 500 clients in developing client/server solutions. He is a Visiting Scholar at Massachusetts Institute of Technology in the Science, Technology and Society Program and conducts undergraduate seminars on the practice of engineering.

Sameer Rafiq wrote: It depends alot on which language you used before coming to .NET platform. VB programmers are more comfortable with VB.NET while C/C++ programmers are more comfortable with C# because of syntax.
read & respond »
Brian Bischof wrote: It's too bad that VB.NET has to fight against the reputation of VB6 which preceded it. MS truly rebuilt VB.NET to be a world-class development language yet it still has the reputation of being a second-class language. While I agree that C# gives you a little more functionality than VB.NET (as mentioned earlier), it's a pretty small difference that is probably only utilized by less than 5% of the C# developers.
read & respond »
Roger Jack wrote: I think the languages are close and I think programmers should be able to pick one or the other with impunity: http://www.rogerjack.info /2004/10/programmer-and-h is-languages.html
read & respond »
grundSaft wrote: {{{ Good article and the point on "fit for purpose" is well made. However, look at the way even MS positions VB programmers. VS 2005 IDE has no support for re-factoring in the VB.NET profile. According to some MS people this is because VB folk do more RAD and less hardcore components and re-factoring is more suitable for component development hence is only available in the C# profile. }}} Santosh, you say you aren't a VB programmer. Why not let VB programmers speak for themselves.
read & respond »
Santosh Benjamin wrote: Good article and the point on "fit for purpose" is well made. However, look at the way even MS positions VB programmers. VS 2005 IDE has no support for re-factoring in the VB.NET profile. According to some MS people this is because VB folk do more RAD and less hardcore components and re-factoring is more suitable for component development hence is only available in the C# profile. I am not a VB programmer, but i do think this is quite insulting to those developing components in VB.NET. Can you not develop pwerful class libraries in VB.NET? They even didnt have XML comments in VS2003 for VB folk. Why all this discrimination from MS itself?
read & respond »
Claudio Grazioli wrote: I totally agree. The languages are more less exchangable. But: If I'm looking for a high skilled OO programmer (who's really an OO expert) it's way much easier to find such a developer in the C# world. Because most of the C# developers have been C++ or Java developers before (or still do it). They use OO languages for a long time and are really high skilled. VB.NET developers very often come from VB. Nothing against VB developers. They write great software. But comming to the OO skill, very often it's quite new for VB programmers. That's why I prefer C# programmers. Because often, they are more skilled regarding to OO.
read & respond »
Jon Person wrote: In VB.NET, you cannot create user controls for the Compact Framework. In VB.NET, you can't do implicit or explicit conversions. In VB.NET, you can't do operator overloading. I write commercial components in C# because C# has slightly more capability. I used to use VB.NET but there are just some things you can't do with it. VS.NET 2005 will close the gap somewhat.
read & respond »
MICROSOFT .NET LATEST STORIES
Icahn Moves To Force Microsoft & Yahoo Together
Corporate raider Carl Icahn started his proxy fight for control of Yahoo this morning, beginning with the classic Icahn opening, the letter of reproach to the Yahoo board telling them they have acted 'irrationally and lost the faith of shareholders and Microsoft.'
IBM, Microsoft & Google Eras of Computing
By now it is conventional wisdom to say that there was an IBM Era of computing, then a Microsoft Era, and now we are in the Google Era. In this post, I will explain why Microsoft was not the 'next IBM' and why Google is not the 'next Microsoft' - there are significant qualitative diffe
Book Review: ASP.NET 2.0
ASP.NET developers are bored with traditional books that outline concepts in a lengthy way. These books are good if you like to learn the features in a detailed manner. However, by the time the book is read, a new version will be released. Hence, many learners including myself prefer s
3rd International Virtualization Conference & Expo: Themes & Topics
From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
"RIA" vs "Rich Client Platform": The Term Is Now Up for Debate
'RIA' is slowly fading in terms of its definition. When I first started the RIA Evangelism role in Microsoft, I had this nagging feeling that the term RIA was just all over the place. Depending on which technology you are backing and which stream of alliance you uphold, the truth is th
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING NEWS FROM THE WIRES
Strangeloop Networks Selected for Red Herring 100 North America 2008
Strangeloop Networks (TM) Inc., a leading provider of solutions that accelerate dynamic web