Wiki Home

CSharp Or Visual Basic

Namespace: WIN_COM_API
There are two major languages for .NET, C# and VB.NET, and you can only write in one at a time. So which should you use?

Microsoft's position has been mostly: if you're more comfortable with the C/Java syntax, use C#, if you like VB (VFP too) style syntax, use VB.NET. While that is important, it goes a little deeper than that.

The differences in the style of languages goes beyond the differences in the syntax. C# on one hand is an ECMA standard. Microsoft doesn't control it, so it will be a stable language (meaning it won't be changing on you much). Because of this, C# Compilers also exist for Mac, Unix, and Linux.

And on the other hand, there is VB.NET, the proprietary Microsoft language, which will not be ported. Because it will only be running on Windows, VB will be promoted the most by Microsoft (to drive users to Windows Applications) and accordingly, will be more likely receive the big bang features well before C# does (if C# ever does).

This explains why we have multiple languages very nicely:

1. C# To get the more standards oriented, C/Java folks to the Microsoft developed platform, even if not running on Windows.
2. And VB.NET to attract those developing on the .NET platform to the Windows only version.

So to answer the question, which is it? It depends alot on the project. Some people say "C# is for the framework (not .NET Framework) style classes, while VB.NET is for RAD development" and we can see that there is some truth to this given the preceeding paragraphs.

If you want to RAD and the nice features do VB.NET. If you feel you'll want to port your code too different platforms, or you just don't like development tools called "My Code Snippets", C# will do, but may be lagging behind in enhancement after a while.

Contributors: Mike Helland

I am not sure the fact that C# will not be controlled by MS (or a any other single vendor) is such a big advantage. Back when I programmed in C/C++ the syntax of the language was standard no matter whether I programmed for DOS, Windows or Unix. Yet, the libraries (functions and classes) were completely different among vendors. To draw a square on the screen one vendor provided function ABC while other provided function XYZ and each of them took completely different parameters. The language was the same, but the portability promise wasn't really achieved unless we used the same vendor for our C compiler (or library). -- Hector Correa

To people like you (and me) who voluntarily use Microsoft products, its not that big of a deal. But other people have different tastes, sytles, and requirements when it comes to this stuff, and Microsoft's offerings are their attempt at attracting as many of those camps as possible while being as profitable as possible. -- Mike Helland
Category DotNet Category VBDotNet Category CSharp
( Topic last updated: 2002.12.02 01:57:03 PM )