Hello All.
Ayhan:
Well now, it looks like we have a philosophical discussion on our hands. So, here's my philosophy, FWIW.
I really don't think that there is a dime's worth of difference as far as "strength" goes, whatever that is supposed to mean. Whatever you can do in C#, you can do in VB. Now, for the sake of discussion, let's assume from the outset that we are talking about the .NET 2.0 versions of both languages. Assuming that they make the same BCL calls, they both compile to the same MSIL. One of the fundamental features about .NET is that the CLR doesn't care a whit about which language the source code is written in.
I think the debate all boils down to coding and development style preferences. When I started programming for Windows, I coded against the Win32 API, which is by far easiest to do (but still not easy ) with a C-based language. So, naturally, I gravitated to C# from C++. Which, by the way, MS made very easy to do.
In comparison, I think that on the one hand, you have folks who are of the opinion that since VB is a "Basic" language, that it is not as "professional" or "real" as C#. To which my answer is, "Well, if you write code that sells, it is as "professional" or "real" as it needs to be." Add to that the fact that the MSIL is identical to C# code, then from the execution standpoint, there is no difference at all.
On the other hand, you have folks who either say that VB is too verbose, or C# is too cryptic. Again, we're talking about the source code, not the binary, so it's really a style preference. The old supposed trade-off between efficiency and readability. But, with modern optimizing compilers, most of the time, if you try to get cute with efficiency, you wind up shooting yourself in the foot. Besides, the author of the code is the primary contributing factor to code readability. As far as who considers what to be "readable", again, a lot of the time it's merely a preference.
In addition, there are several instances of things being much easier to do and more concise in VB than in C#, like the methods in the .Strings module, for example.
As to whether or not you should learn C#, I say "By all means, do so." You said yourself that you wanted to, so go ahead and do it. It certainly won't hurt your resume. You say that you want to be convinced that C# is "better" than VB. Well, I am positively convinced that Brussels sprouts are disgusting. So, convince yourself.
The main point that I'm trying to make is that I think one should concentrate on writing clean, efficient, readable, maintainable code -- that works. Personally, I think that arguing over whether or not C# or VB is the "better" or "stronger" language is like a bunch of firemen at a fire arguing over the color of their fire trucks. I say, "Just pick up a hose and start pumping water!"
HTH
|