Tech

Guides
 

Why do C# developers look down on VB.NET?

By Justin James, Special to ZDNet Asia
Friday, March 06, 2009 12:38 PM
A lot of the anti-VB.NET talk is from C# developers, but this is baffling because the language that most resembles VB.NET from a technical standpoint is C#.

Last year I moved from VB.NET to C#. This year, it looks like I will be doing a lot of work in VB.NET.

Some of the people I told this to acted like I said I was forsaking my family and joining a wacky cult in Nepal or something.

If it was coming from Java or Ruby or PHP folks, I could understand--VB.NET is sufficiently different in philosophy and style from those languages for there to be a point of contention--but the people who seem to hate VB.NET the most are C# developers.

I just don't understand.

When I made the move to C#, the final motivator was not a deficiency with VB.NET, it was the fact that I was working on customizing a product that was already written in C#. Re-reading that article from June 2008, even then I had no overwhelmingly good reason to stop using VB.NET; on the whole, it was meeting my needs.

Most of the pressure that I was feeling to start using C# was social pressure from other developers. In the .NET world, it feels like VB.NET people are often considered to be less capable or less experienced than C# developers, or that C# is a substantially better language than VB.NET.

Don't mistake me here; I know where the anti-VB sentiments traditionally come from. The VB family up through VB6, VBA, VBScript, and the other variants is a wretched language on all technical fronts. As far as I can tell, the only good thing about VB was that it was easier to get things done in it than the alternative at the time, which was C++. I always was baffled that VB beat Delphi, which was just as easy to use and much better on a technical level.

But folks, pinning the sins of VB on VB.NET is factually unsupportable. Remember the stink that VB developers made when VB.NET came out? It's because VB and VB.NET are truly two entirely different languages that happen to share enough common syntax to be visually identical at a casual glance. I am not going to enumerate all of the differences between VB and VB.NET here; it would take a book to list all the differences. It is safe to say that, other than syntactic similarities, VB and VB.NET are different languages.

In fact, the language that most resembles VB.NET from a technical (not a syntactic) standpoint is C#. Thanks to the .NET Framework, VB.NET and C# have identical libraries; this means that anything you can do in one language can be done in the other in terms of library calls.

At a functionality level, C# offers a few things that VB.NET does not (multi-line lambdas are a big one), and VB.NET has some features that C# does not (like optional and named parameters, which are important). In .NET 4.0 (which is coming out next year, if not sooner), most of these gaps will be closed. The typical business developer will probably never use something in C# that is not in VB.NET, or vice versa.

At the end of the day, the practical differences between VB.NET and C# are items that fall under the category of personal opinion. There is nothing wrong with that; some developers prefer a more verbose language like VB.NET, while some like one that is a bit more terse. There are pros and cons to each viewpoint. But to act like VB.NET is some pariah language and C# is the bee's knees… that just does not make sense.

Disclosure of Justin James' industry affiliations: He has a working arrangement with Microsoft to write an article for MSDN Magazine. He also has a contract with Spiceworks to write product buying guides.

Justin James is an employee of Levit & James, Inc. in a multi-disciplinary role that combines programming, network management and systems administration.



WORTHWHILE?

0

0 votes
Blog

Talkback 12 comments

VB6 rules!
NT :P
Posted by ProgrammerInLimbo on Friday, March 06 2009 02:54 PM

RE: VB6 rules!
VB 6 rules!
Yes why need VB.NET? I can code VB6 much faster.
Posted by killye on Wednesday, April 22 2009 06:05 PM

c# and vb.net
and that clears my frustation in "which is which" in .net world.. thanks for writing this article
Posted by anonymous on Friday, March 06 2009 02:57 PM

I'm on VB.NET too.
I too did VB.NET and turned to C# only when the environment asked for it, in the case like the library that I'm trying to use had 2 functions with the same name but differs by casing (that library developer must be pro-C#, anti vb.net?).

But I'm a little more lucky, haven't been looked down before by C# peers, since there isn't any big difference after all from what you can achieve from both of the languages.

And well, nowadays a VB.NET developer can write C# codes as well after some session of getting familiar with the syntax. Yes, it isn't that VB6 any more.
Posted by Chen Choong Seng on Friday, March 06 2009 03:03 PM

VB.Net Much better
VB.Net is so user freindly that C# can only dream of being that.

I have coded using C# for 3 years and VB.Net 2 year, now my fav is VB.Net
Posted by Raj Kiran Singh on Friday, March 06 2009 03:42 PM

Why? Because of what ends up being coded.
OK. I'll bite on this. The title almost demands it.

I don't think CSharp programmers look down on VB.NET programmers as long as those programmers know good object oriented, structured programming skills.

The problem with VB.NET is not the language, it's the crap code that can end up being written with it.

When .NET first came out, I was working for a training company. I taught VB.NET and CSharp as well as some other languages. Most VB6 programmers took the CSharp class. Why? Not because CSharp was a better language but because they realized there were enough differences between VB6 and VB.NET that learning .NET would be dangerous if they learned it in VB.NET.

The fact of the matter is, you can still write code in VB.NET without knowing anything about structured programming or object oriented programming. This is less true in CSharp.

No where is this more true than with VB's concept of Modules.

Prior to VB.NET, this question came up with VB4, VB5 and VB6. Why do the C/C++ guys look down on VB? VB rules! We can write code so much faster.

But at what cost?

I currently write in both VB.NET and CSharp. I can tell you that the ONLY reason I'm writing in VB.NET is because the client I'm writing for actually understands the issues.

If you are new to .NET, I encourage you to learn .NET in CSharp first unless you already have a solid object oriented background. Once you've unlearned the old habits from VB6, then you can move to VB.NET if you want.
Posted by anonymous on Friday, March 06 2009 07:30 PM

VB VS Delphi
"I always was baffled that VB beat Delphi, which was just as easy to use and much better on a technical level."

The primary reason, I think, was a Microsoft bias in many companies and among many developers (coupled with Borland's historic lack of publicity and promotion of their products).

As a Delphi developer who has been forced to adapt to C#, I am continually appalled at the complexity of code one has to write to accomplish things in C# and how poor of a choice C# is, especially with regard to desktop apps, as a RAD tool.
Posted by Ralph Wsilon on Wednesday, March 11 2009 11:51 PM

Power vs. Ease
This argument is older than .Net and even older than VB vs Delphi. This is the "Real Men Don't Use Mice" argument from the wild west days of PC's. The question exists because of the kind of people in each camp. Ease vs Power. Ease usually wins (RIP Delphi. RIP DOS). If a business is looking to get into .Net, i almost always recommend C#. Retrain your VB people into C# and you'll get a more knowledgeable pool of developers to choose from for future hiring. VB people are coder's. Give them a job and they get it done fast. C# people are developers, give them a problem and they'll find a total solution. My experience is that VB people know VB. C# people know how C# fits into systems.

Yes this is an over generalization but I challenge you to look at the people you know who only know VB vs the people you know who only know C#. I'll bet you that two things are true...

1. C# people in general know more about this business.
2. It's easier to find a VB.Net person who doesn't know C# then it is to find a C# person who doesn't know VB.Net.
Posted by CMercs on Thursday, March 12 2009 04:21 AM

RE: Power vs. Ease
Best explanation!
Posted by Tom on Wednesday, April 22 2009 05:54 PM

Why do C# developers look down on VB.NET?
It is matter of community. We tend to create an in community and "out community." I am examining this in my dissertation. I have survey as part of my study at this link: www.itphdstudent.com...
Posted by kevin mcreynolds on Tuesday, November 17 2009 11:55 AM

RE: Why do C# developers look down on VB.NET?
I skip the debate and code in IL personally.
Posted by Jimmy Frank on Wednesday, November 18 2009 05:16 AM

Why do C# developers look down on VB.NET?
I think its just the VB 6 rub off onto VB .NET, though the two are based on entirely different paradigms. But what I really don't understand is why do C++ developers look down upon C#. Maybe the missing * pointer refs.
Posted by Stanley on Wednesday, November 18 2009 08:00 PM


Guest user

Guest user

Level: 
Joined: —
Already a member? Log in »



 

Loading...

Whitepapers/Case Studies

Downloads

Web Development News



Tech Jobs Now!

Tags

  1. business applications
  2. c#
  3. developer
  4. html
  5. industry
  6. java
  7. justin james
  8. microsoft .net
  9. microsoft corp.
  10. microsoft visual studio
  11. programming
  12. protocols and platforms
  13. server
  14. soa
  15. software engineering / development
  16. tool
  17. web
  18. web browser
  19. web services
  20. web sites