The Slow Brain Death of VB.NET

March 10, 2005

It's amusing that the very people defending VB.NET are, ironically, illustrating precisely why VB.NET is in such trouble:

I just want to make it clear that I am one MVP that does NOT intend to sign this petition about VB. And by the way, my background is mostly VB, with some Delphi thrown in, although I prefer C# now.Paul Wilson

Meanwhile, as I got deeper into ASP.NET and VB.NET, it became more and more clear every day that to use .NET I had to think differently. I struggled with that even after switching to C#Jeff Putz

VB.NET is so awesome of an upgrade, in fact, that these noble defenders of the faith chose not to use it.

And they're not alone. Either VB developers are choosing not to adopt VB.NET at all, or they're making an opportunistic switch to C#. In droves. Visual Basic developers, once the largest block of developers in the world, can no longer make that claim. Forget the ridiculous VB6 petition – that's what these guys are really complaining about. And they have a point:

This isn't conjecture. Independent market researchers across the industry (i.e., those not dependent on Microsoft's financial support) report a steady decline in the number of VB developers worldwide since the release of VB.NET. Is this the swan song for a hard-working, approachable language that was once the planet's most popular programming dialect? Here's one of many compelling examples. Note that, while declining, classic VB still tops the list, while VB.NET brings up the rear.

There's a lot of hard data to support this disturbing loss of mindshare for Visual Basic. I've personally observed it happening over and over since .NET was released in late 2001. Have you seen this Visual Expert developer survey that Dino Esposito pointed out?

VB 6.x 78%, VB.NET 19%, VB 5.x 2%

Those are truly abysmal adoption rates. And how about this 2003 Evans Data Corp survey:

43 percent of [Visual Basic] developers surveyed plan to cut back on their use of the popular Microsoft development platform. Of those saying they plan to reduce their use of Visual Basic, 37 percent plan to migrate to Visual Basic .Net. – largely from Visual Basic 6.0. 31 percent said they plan to move to Java and 39 percent said they will be migrating to C#.

This is a very real trend, and it spells one thing: the end of Visual Basic's role as a dominant, driving force in software development. And why does that matter? A fellow VB.NET developer challenged me in a response to one of Paul Vick's blog entries:

If you (and I use "you" in the general sense here) woke up tomorrow and found yourself to be the only language VB programmer left, would you still code in VB? The answer to this question shows whether one is a mature independent thinker or just a sheep following the crowd.

This entire statement runs counter to the spirit of Visual Basic. We'd have to be the crappiest mature independent thinkers ever if the best "radical" language choice we could come up with was VB.NET. Our choice of language is driven by purely pragmatic reasons. We use VB because we want to be part of the herd. VB developers are smart: they realize that moving with the herd confers certain advantages.

moving with the herd

A huge part of VB's productivity story was the market potential of such a large group of developers. Choosing VB.NET, in the current state of the .NET world, is unusual. And that's fundamentally at odds with the design ethic and history of the language. This isn't Ruby, or Python, or Haskell.

In the old VB world, you could cherry pick the best third party tools from huge catalogs. The market was so vast that vendors would be nuts not to offer a VB-specific version of their product. But in the current VB.NET world we're living in, there's no VB.NET version of Resharper. And this phenomenon isn't limited to third-party tools. Code samples. Enterprise library. Open-source projects. You name it, it's easier, faster, and better in the language that the rest of the herd is using. Which is something VB used to have going for it.

Now, not so much.

Posted by Jeff Atwood
133 Comments

.. vb.net shouldn't have been created.. it's ugly and cumbersome to use. and i'd been using vb since version 4 to 6! but prefer c# for the last 7 years. just my 2cents

jack0fshadows on May 6, 2008 11:28 AM

I have used both languages - starting with VB and moving to C# out of curiosity. On balance I prefer C# because I find VB rather cumbersome (that old chestnut ;-) ) and in the beginning I also found it easier to shift to the .Net paradigm through using C#. Currently I am working towards MS certification and alternating between the two languages.

Maz on May 7, 2008 9:59 AM

i have been using vb6 since year 1998.
vb.net shouldn't been created. it is not backward compatible. it is not supported in office vba. it is not supported in client-side vbscript.
For .net application, C# is sufficient.

Shaswaky on May 27, 2008 8:26 AM

I was a VB6 programmer due to availability of work. Learned .Net using C#. Got a job working as a VB.Net developer. Did some side projects in C#. Got a new job as a C# developer doing realtime processing. Changed jobs again and now i am working in VB.Net and I do a large amount of work maintaining VBA code and an old VB6 application. This is my take on it:

- VB and VB.Net are easier to learn if you do not have a background in development
- C# is by far more efficient to read, write and document if you have any development experience, especially with C, C++, Java, Javascript etc.
- More examples and tutorials are written in C# than VB.Net
- C# is "better" (IMHO) for all things asynchronous like multi-threading, working with delegates etc because of the way delegates are manipulated (i.e. declaration is easier, adding and removing handlers is easier)
- Creating class libraries in C# is easier due to the in line documentation features and the fact you can generate help files from those in line comments.
- IMHO creating a coding standard is easier in C# because of case sensitivity (private members are camel case, public members start in upper case)

In the end, if your just writing simple business apps, then it doesn't really matter either way. If you are trying to write anything that is more advanced, then you should lean toward C#.

Cheers,

Russ

Russ on June 9, 2008 1:00 PM

I really don't see any difference between vb.net c#.net in visual studio 2005/2008. It is simply a preference. If you are comfortable with vb scripts then use vb.net, if you are comfortable with c# script then use c#.net. They both generate the same CLR. you can convert your source code from one to another.

all the features Russ is talking about are available in vb.net.

I personally prefer vb.net, cause I think all those {} and ; should be history.

Now VB6 is a total different animal, I would pick c++ over vb6 in a heartbeat.

Subrata on July 10, 2008 12:03 PM

As Subrata above alluded to - it's a question of style than of capability. Both VB.NET and C#.NET do the same things, in the same ways (99.9999999% of the time). The difference is like writing with a pen and writing with a pencil. It looks different, but it says the same thing.

I use VB.NET even now. I did start to learn C# when it appeared like a lot of others seem to do, but when I started looking at VB.net on day, and actually checked the differences between C# samples and VB samples, they're identical.

I think there is more an air of superiority around C# simply because it has the letter 'C' in it, rather than because it is actually a better language.

SpaceAlien on July 16, 2008 10:27 AM

Hi

It is a great and nice post and I like it.

shopping cart on July 16, 2008 10:33 AM

OK I was wrong. The author didn't write a load of clap-trap! Sorry, I was a wanker to even suggest it.

Darryl Godden on August 26, 2008 5:29 AM

I agree with Subrata. Code in VB.NET and C# compile to the exact same MSIL code, so there is absolutely no difference in performance. Everything that can be done in C# can be done in VB.NET, period.

I perfer not having all the case sensitivity issues and all the extra brackets and semicolons that come with C#. Why add more keystrokes that only slow you down? For me, I can switch between the languages and it only takes an hour or so to get back up to speed. There are guys in my office who believe C# is clearly superior to VB.NET, but when I try to drill them down with some basic arguments, they can never explain as to why.

Bob on August 28, 2008 9:55 AM

Looks look like it's doing just fine...
* Visual Basic is the #1 .NET language (as reported by Forrester Research)
* Visual Basic is the #1 downloaded and #1 registered Express Edition (topping the #2 position by 20%)
* Visual Basic is the #1 MSDN language dev center and blog in terms of traffic
* The Visual Basic Team blog is in the top 1% in readership of all MS bloggers (I don't know where I fall in that since I host independently.)

http://www.panopticoncentral.net/archive/2007/11/01/22453.aspx

chichikov on September 5, 2008 9:31 AM

vb6 is VB
vb.net is .NET
vb.net is killing vb6

= .NET is killing VB

KongFuZhi on October 17, 2008 8:54 AM

.NET is good stuff.
It all depends on your needs.
For really rapid application development, I like Access, I can make it a run-time and build a nice solution in a few months at most.
For more robust solutions, .NET is great.

Cort on October 24, 2008 2:24 AM

HOW TO SEE CODINGS TO CONNECT VB.NET WITH SQL SERVER USING FLEX GRID

SHARMILA on November 5, 2008 1:12 AM

With that said, VB developers can make a fair transition to VB.NET, especially those that are strong, professional software engineers. Hacks will definitely have more difficulty making the transition. Therefore, .NET will help separate the wheat from the chaff.
http://autoseler.ru/

Olef on January 9, 2009 5:42 AM

Both C# and Vb.net languages can be used for most common tasks it makes no differences what language you use. suppose you want to work with office object , then i will prefer VB.net than C#.
I must say that the way vb handles xml literals in vb2008 is great
C# and VB.net syntax not much difference really, the choice of programming language depend on you interest and background knowledge
I am a VB guy so my choice is always VB.net, because its syntax is much intellisense .

ANIL KUMAR on February 3, 2009 2:33 AM

I can also see that in some cases re-writing a project would not be
worth the effort.
http://novhouse.ru/

Oskar on February 7, 2009 1:40 AM

VB? Grow Up!

VietcongCharlie on February 11, 2009 2:47 AM

I am new to both. I have tried VB.Net, C#, C++ and java (as well as NXC and NQC for various robots). I seem to think that C#, C++ and java are almost identical. If I had to rank them it would be:
1. VB.Net
2. C#
3. C++
4. Java
I like VB.Net because it is the only one I can do much good with. I also learnt Excell VBA first from a good book. I have made a cellular automaton which is fully functioning at the basics but I am still working on advanced things.
C# and C++ next. I find them very similar but C# is better for reasons I can't remember.
Java: I couldn't make any headway with this in trying to replicate the CA because I don't know how to make a picturebox in netbeans.

I also like VB.Net because you don't have to put in silly include files with no apparent meaning. I have never tried VB6 as I only started VB (rather than VBA) in December 08.

jammyatjammy on February 18, 2009 3:01 AM

whether it is vb.net or c#, one thing is sure: nobody codes mass-distribution apps in dotnet.

we re-coded a vb6 app (distribution 30,00 desktops) in c#. It was unsupportable because of the framework requirements (that are, in 08/09, still often not present). From a support department of 3 guys, we wee looking to add 3 more, just to sit and wait while customers downloaded frameworks. Often they refused to waste the time.

Can anybody think of a major piece of software (like, say, Skype) that is coded in dotnet? Thought not.

paul on March 14, 2009 1:35 PM

if only php would wrap up in runtimes - then we could all forget this OOP crap, and get back to being productive.

paul on March 14, 2009 1:37 PM

A long time ago, in a reply MUCH closer to the top... (alright, forget the Star Wars reference).

If there was any language that could become the next VB6, it'd have to be Microsoft's new F# language, planned for release in Visual Studio 2010.

3J on March 30, 2009 8:47 AM

I've been a Vb4, 5, and 6 programmer for the past 12 years. I'm trying to learn c# simply because I did a few searches on careerbuilder and dice for my area and came up with something like 47 jobs in C#, 48 in Java, 30 in vb.net, 0 in Vbx, and a few in C++ or C. I downloaded the free C# 2008 express.

Here's a few conclusions so far:

1. Learn/Review a little C first, Then a little C++.

2. The default help that comes with the express editions is a joke, so download the MSDN express library.

3. But really get a good book. The MSDN express library doesn't seem to be geared for learning. If they were going to teach you how to drive they'd tell you what a coil, piston ring, and distributor was, but never to stick the key in the ignition and turn it! (Oh yeah, they'd omit to tell you to put the car in park first.)

4. Intellisense is great, and the language, to some extent, seems logically put together.

Jim on March 30, 2009 9:23 AM

Ok. I've seen enough! I came here looking for sample code for an application an saw yet another, DotNot is great, Classic VB is old and to be done away with, flame war filled with selfish programmers who obviously are not affected by any switch the Micro$oft fleabags threw on the rest of the respectable development world. I will not rest till I create a compiler that will re-invent the Classic VB language in all it's glory, for all major platforms, and will PERSONALLY see to it that this DotNot fraud sinks into the sands of oblivion, and we will see who will laugh last. This ain't business now, it's personal!

VB Architect on April 17, 2009 12:42 PM

I have used both languages - starting with VB and moving to C# out of curiosity. On balance I prefer C# because I find VB rather cumbersome (that old chestnut ;-) ) and in the beginning I also found it easier to shift to the .Net paradigm through using C#. Currently I am working towards MS certification and alternating between the two languages
http://landelite.ru

ANIL KUMAR on May 7, 2009 10:59 AM

This isn't about technological advancements, it's about money. It's your money, but Microsoft wants it. Back in 1998 a copy of Visual Studio 6 Enterprise Edition probably commanded close to $2000 and yet in a few short years MS introduced dot net and put v6 products on the chopping block. Then with the release of Windows Vista, VB6, as well as programs developed using it, could no longer operate without the help of a product such as Virtual PC. This is not such an issue for home use since a person is free to continue using any operating system and compatible productivity software that he/she desires, but in the realm of commercial software coding lagging behind the competition can be fatal. This fits in nicely with Microsoft's planned obsolescence scheme but ends up as an extra expense for the companies on the receiving end.

Bruce Munck on May 13, 2009 5:20 AM

i want good project in VB.NET
if u have any good project then plz mail me atharshalakadam21@gmail.com

harshala on July 2, 2009 4:30 AM

I want vb.net coding for decreasing time for the tool timer control

saveetha on July 16, 2009 12:20 PM

I want vb.net coding for decreasing time for the tool timer control

saveetha on July 16, 2009 12:22 PM

Yes!! Yes!! Yes!! Please stay with Visual Basic 6.0. All 6 million of you... UNITE and continue using VB 6.0.

I was there back in the day when we were the Red Headed step children of the development community. Not OOP and on and on. I was also attending Windows NT classes when the Novell guys were laughing at that inherently unstable Windows NT version 3.51 too. SCO Unix was just entering it's downward spiral and it was move on or go down with the ship. NT 3.51 was the newest thing going and all my SCO colleagues even went postal on me. Where are all those SCO Novell guys today? Hint: N.G.P.A. - Not Getting Paid Anymore. They disappeared almost overnight when NT 4.0 came out. I made a fantastic living removing Novell and SCO systems.

It was a challenge to learn how to program with the .NET framework. Totally different thinking than VB 6 application design. Some old dogs can learn new tricks. I also went the C# route instead of VB.NET. All of you out there who are crying about the beloved VB 6 and the good ole days must not have been there at all. I was there when we were called names like "Bill Boys" and "Windows Weenies". VB 6 was simple and cheap to develop applications with. That's all. It was also clunky and quirky too. Avoiding Dll Hell alone is worth updating to .NET. True OOP is yet another valid argument. CLR, Common Types and the list just keeps getting longer.

Anyway back to the crux of the post. Please don't migrate to the .NET framework. .NET sucks, VB.NET sucks, C# Sucks. Stay with VB 6. Not because VB 6 is better but because it's just that much more code that I'll rewrite when you're N.G.P.A.

Clayton G. on February 6, 2010 9:29 PM

That's exactly what the Novell guys said.....

Hey let's bring back Windows '95 and continue development on it too. Then we could have two versions. One for people who are willing to put forth an effort to advance their skill set and the other for people who have to much invested to learn anything new.

Clayton G. on February 6, 2010 9:29 PM

I have been using VB.NET in Visual Studio for about a year. I moved directly from Classic ASP, which I moved to from PHP at my other job.

It is syntactically similar to Basic/ASP. There is alot of code examples online that are written in C#. They are very easy to translate into VB. The only drawback is that if you use alot of JavaScript you have to jump syntactically back and forth between curly braces/semicolons to the more verbose VB.

Aside from that, they both appear to be very similar. If it is an issue of churning out the product, then using what you are most comfortable with seems the way to go.

Learning a language is simple for me. My biggest challenge has been in moving from procedural to object oriented thinking and applying it effectively.

Allyson on February 6, 2010 9:29 PM

I think C# is more likely to be the new VB, but not quite as popular.
The drastic mindshare loss is too much to make up.

- Shelon Padmore

Shelon Padmore on February 6, 2010 9:29 PM

I have been using VB 6 since 2000. I am a hobbyist but I do have some paying database customers. I started re-writing my database app
in VB 2008 XE in december of 2007.

I will admit it has been frustrating at times but well worth the effort.

I can also see that in some cases re-writing a project would not be
worth the effort.

Ron R on February 6, 2010 9:29 PM

«Back

The comments to this entry are closed.