jenswinter.com
Software Development 24/7

About VB.NET vs. C#

May 16, 2005 21:08 by Jens

A few weeks ago I got involved in a small project - a funny, little online game. For me what's so special about this project is that it shall be written in VB.NET. As a C# developer I didn't write a single line of VB before. So this is a special challenge for me. Ok, it is not that I didn't know anything about it. At least I read VB code from time to time in books and articles. And I have a BASIC background from my first years programming on my Commodore 64.

So I decided to just jump into the water. By all means learning another programming language can't be a bad idea.

So after the initial requirement gatherings for the project I started coding. And what then came was a very big surprise. I didn't have any problems. It only took some examples from the MSDN Library to get the hang of the VB syntax. I had to find out about event handling and the module thing. Visual Studio dealt with the rest. I am truely amazed about the help VS is giving with VB development. The automatic completion of statements allows for really fast coding. This was a whole new experience for me.

Coding VB.NET really is a pleasure for me. But to be honest the main reason for this is Visual Studio.NET and not the language itself. Getting a grip on VB hasn't been as challenging as I expected. In fact for me there is no real difference to developing in C#. Of course the syntax is different but it is still all about classes, fields and properties. So I was wandering what's all the fuss about VB.NET vs. C#. Where are the real differences where are the advantages over C#. There have to be reasons for VB developers to use VB.NET instead C#.

So I asked this Question in a VB newsgroup: "What are the advantages of VB.NET over C#?" I was hoping for some enlightening answers, but the answers haven't been very satisfactory. Of course there were the usual debates about the syntax of C# - curly brackets, semicolons and case sensitivity. But this is not what I was interested in. I expected this sort of discussion. I wanted to know about things you can do with VB.NET you can't do with C#. So when I filter out all the syntax stuff, the resulting list is this:

  • Late Binding as integrated language instrument
  • Parameterized properties
  • "With" statement
  • Optional parameters

Personally I don't like the with statement. And I can do well without optional parameters.
The list surely is far from being complete. But that's what I got. So biggest advantage is the comfort Visual Studio provides with developing VB.

Concerning the debate about VB syntax vs. C# syntax I sensed an aggressive tone on the VB camp. They stated that VB is much more readable. This may be right - for them. But this doesn't necessarily applies for everyone else. I tried to convince them that VB isn't really more readably for me. Note, that I didn't try to convince them that C# is more readable than VB. I said that I prefer curly brackets and case sensitivity.
So dear VB developer, do me a favor and don't tell me what I can read better. I will decide this for myself. Wink

To summarize: There is absolutely no need for language wars. Just try out the different languages and decide for yourself which one suits you best.

Here is a very good article on codeproject that compares VB.NET and C# (via Carl Franklin).

Oh btw, please feel free to expand my list of VB advantages over C#. I'm very interested and I'm pretty sure there are some more points.