I need some clarification please. I am learning VB.NET right now and have a co-worker who has a very strong technical background and feels very strongly that learning VB is a "waste of time in all respects" compared to C#.
I don't understand this point of view. Since VB is a .NET language does it not posses the same capabilities as C# Am I on the wrong track I really enjoy the VB.NET syntax and am picking it up quickly.

VB vs C#. How capable is VB compared to C#?
Page123
I think it's an excellent idea to have only one syntax in a company, this way it's easy for everyone to update/read other people code and this can be huge time saving which is less money to spend for the company. And expert in multiple languages also cost more. Sure it's easy learning multiple .NET language when you are good but for most people it’s not easy. And this can also cause less argument over which language to use for a project, some people belief are very strong. Maybe the guy is wrong, maybe he is right but for a professional point of view for the company, maybe it's good not to argue with him. He has a good point of have a company standard.
bfollenweider
vanRepin
Every benchmark I have seen shows that this is not true. If you reverse engineer code done in either language you often get the same result.
That being said, I would not mix languages in a corporate shop; you really should decide on which language and go with it. It just doesn't make sense to have to develop coding standards for two languages and to have to try to find personnel comfortable in both languages going forward. Most programmers in the market that use C# came from either a C++ or a Java background, so they are more likely to feel comfortable with object oriented development. Also, there is more support in the form of development pattern documentation and code generation templates (if you use CodeSmith) for C#, so I think it has an edge. In finding better quality developers, C# developers tend to come from a more disciplined background. VB has both the baggage of the language (such as arrays defined by the upper boundry) and the baggage of a generally less professional group of developers. Although there are a number of quite excellent VB developers, there are a large number of hobbyist turned professionals as well.
I personally use VB for most user interface work, and C# for controls and any back end work. This is pretty consistent with how I developed in the past with VB6 and C++, so it works for me. In the end, I will use whichever language the client prefers, so it is advantageous for me to know both. If I were to recommend a language, I would recommend learning C# first, then VB if time permits.
dgm2
Derrick Morin
Here's my background ( being totally honest ). I am self taught, I learned C++ back in the late 90's. From there, I moved to C# because ASP.NET is the best platform available today for web development. I also use C# for forms development nowadays, most of the time, because it's easy to use, and I don't see a reason to charge my clients for extra time because I like C++. I've taken a couple of VB jobs, and I will never do so again. I hate the syntax, I find that VB.NET has hidden traps which are a legacy of the VB6 days, and I spent too long as a C++ developer when VB6 was plainly second fiddle to C++ in terms of speed and general capability to get over my anti VB bias at this late stage.
With that background in mind - your friend has no idea. Both VB.NET and C# compile to the same runtime, neither one generates code that will run faster than the other, both have access to the same libraries, both can call the Win32 API directly if they need to, VB.NET has some stuff that I consider ugly, it also has stuff I think is better than the way the same things are implimented in C#. At the end of the day, unless the arguement is between C++ and .NET, the argument simply does not exist. Even then, with our machines running as fast as they do, the speed of C++ is rarely needed for a business application. At this point, the only reason I can see to choose between VB.NET and C# is which one you're more comfortable with. They can even talk to each other natively, so there's no need to use only one language within a team, so long as each language defines the boundaries of an exe or a dll.
It's likely your friend is assuming that C# having a C++ like syntax will perform like C++. But, he is wrong :-)
jim and ebby
Sorry, you're wrong. C++ supports unmanaged code.
sotona
Everything you write in c# is managed code. You can create unsafe code which will allow to use pointers but your code must be signed for the code to be executed.
http://msdn.microsoft.com/library/default.asp url=/library/en-us/csref/html/vcwlkunsafecodetutorial.asp
NoteMe
Well, here's my thoughts on this. I usually find VB a little bigger but it is easier to remember and I make less mistakes in it. The reason behind this is my common mistake in other languages is missing ending } for blocks, ie, if, while for etc. It is very hard to do that because you must have an end if, or a next in the case of a for, to close the statement block. I feel that VB code is easier to read and understand, even without comment, but this is because the syntax is much longer.
C/C++ and derived languages on the other hand are shorter but I feel they are easier to make mistakes in. I also prefer their syntax of these languages myself, but I also feel at times the use of an easier to read language is more beneficial.
So my opinion is this. Unless you really need the unmanaged speed of C/C++, the .net languages are really there to allow the programmer a choice in what they use. I feel that is the whole point behind the .net framework anyway. So I don't see the need for there to be any dispute over what language to use.
Horia Ch
BlueShift
Prabhukalyan
"I think it's an excellent idea to have only one syntax in a company, this way it's easy for everyone to update/read other people code and this can be huge time saving which is less money to spend for the company."
I find your answer somewhat troubling. If we agree that the power of the two syntax's are very similar and interchangeable, how are the cost saving acheived Are you saying that programmers that are familar with C# cannot read VB.NET syntax Microsoft's research does not seem to support that point of view. C# programmers can read VB syntax with greater ease that VB.NET programmer can read C#.
I don't mean to imply that a company standard is not required, but if .NET is the standard the why must the be a syntax requirement
Holger Dors
VB statements are interpeted into the CLR are somewhat less effecient
That's a pretty loose statement, I'd like to see proof. I've seen some arguments about VB.NET using byte alignment that makes the code LONGER, but I don't see any reason why that would be any less efficient.
the syntax is harder and longer than C#
I agree 100%, but it's only visibly longer, it's not visibly harder. It's harder to me, but C# may be harder to you. That's one good reason for both to exist
programs perform slower.
This argument has done the rounds since 2002, and I"m yet to see any evidence, and I've seen a lot of people trying hard to prove it. The truth is that we C++ programmers find it hard to deal with the fact that we can no longer say that our language is faster than yours. It just isn't. C# is definately slower than C++, so that's where he needs to go if he's concerned. C# and VB.NET use the same framework, in both cases the code is turned into executable code as it's first passed over, so any trace of VB or C# is long gone by the time you see a window. This guy is trying to make himself look superior, and he doesn't have a leg to stand on.
eichmat
stenknz
Well, either way, unless you need to write unsafe blocks ( possible, I can't imagine doing image processing without them ), I don't see where there could be an issue. Have you asked him to quantify his claims