Editor's Note

Is VB the Least Among Equals?

VB.NET gets left behind (again), this time by the Windows Live team.

Pop quiz: What do ASP.NET (read: C#), Java, Perl, PHP, Python, and Ruby have in common? The answer: Microsoft's Windows Live team recently posted its Live ID Web Authentication software development kit (SDK) to the Web, and each of these languages has its own iteration of that SDK. Notice any language that's glaring in its omission?

Several months ago, I wrote on this page that for the first time ever, more VSM readers called themselves C# developers than VB.NET developers (Editor's Note, "C#'s Exploding Mindshare," November 2007). In the same article, I noted that this upward trend in C# readers coincided with similar trends in books sold for C# versus VB.NET, and in a couple other key areas. Many of you responded to that editorial, some to agree, some to say that the VB developer is woefully undercounted in the kinds of measurements I used. A representative from Microsoft's PR team informed me in response to that editorial that VB.NET remains Microsoft's most widely used development language.


The Windows Live team is merely the latest group within Microsoft to release SDKs and samples for C# (and other languages), but not VB.NET. For example, the Windows XNA team doesn't officially support VB developers, nor does the team that's responsible for the .NET Micro Framework.

One constant refrain from groups at Microsoft on this subject has been that the teams have limited resources, and when demand is there, VB developers will be supported. But the limited resources argument doesn't work at all here. How many professional developers use Python for Web development? How do six other languages count for more than VB -- the most popular programming language in the Microsoft stable, mind you -- when it comes to deciding whom to support in the SDKs of key Microsoft technologies? Call me crazy, but I'd think the most popular programming language you create could crack the top six.

Is this anyway to treat the largest group of developers you have?

Previously, I've touched on the fact that VB developers have trouble getting respect from their peers or even from the company that makes the programming tool they use. When Microsoft was initially touting VB as being included in the Visual Studio .NET suite, one of the points its product managers emphasized was that VB developers would have a "first-class" development language. VB.NET would have all the power of the .NET Framework -- inheritance, structured error handling, free threading, and so on -- and it wouldn't suffer from the stigma of having second-class status compared to any other .NET language.

So what does it mean to be an equal, first-class member of the .NET Framework? It doesn't mean code samples. It doesn't mean official support from other teams that develop new technologies at Microsoft. When longtime travelers complain that first-class doesn't mean what it used to, I think they might be onto something. Far from being a first-tier language in the .NET suite, VB is often treated as the least among equals.

So here we are, several years later, and VB gets no more respect now than it did when the .NET initiative was announced.

The shame of it is that VB.NET remains an excellent programming language. Its XML features in its 2008 iteration are a step above those in its C# counterpart. This isn't a case of the language atrophying from within -- which would be terminal -- but from without. Unfortunately, that might ultimately prove just as deadly over the long haul. Already, VB is declining in relevance -- most-widely used development language or not. And each time that Microsoft releases a new SDK that lacks support for VB, but includes it for its C# and other language brethren, VB's relevance declines a little bit more.

No doubt people at Microsoft will contest this opinion, but actions speak louder than words. The time is rapidly drawing near when Microsoft will have to address this longstanding shortcoming, not by iterating how important VB and the developers who use it are, but by doing the only the thing that has any bearing in the real world: Providing first-class support for a first-class member of its Visual Studio .NET suite of tools.

Do you think VB is treated as a first-class member of the VB.NET suite? Should it be? E-mail us at vsmedit@1105media.com.

About the Author

Patrick Meader is editor in chief of Visual Studio Magazine.

Reader Comments:

Fri, Sep 11, 2009 Tim Yorkshire, UK

Anyone who says you can't do as much in VB.NET as you can with C#, is not being very fair. The problem for VB developers isn't that you can't do stuff; you just have to apply some lateral thinking because Microsoft is so unhelpful when it comes to telling you how! I've just written a proof-of-concept application, in VB 2008. It took me less than a week and I was fitting it round other projects and pulling apare the API I needed to use (which came only with C++ samples, funnily enough). The funny thing is, I wrote the app to demonstrate the concept to a team of C++ developers - who insisted that despite having sample code readily available, it would still take them six months to even do a mock-up.

Thu, May 15, 2008 Shane S Tennessee

I prefer VB.NET for almost anything.

However, having had C and programmed some windows apps in straight C++, translating from C# to VB isn't that big of a deal.

I think C# has a following because MS has pushed it and most MS developers are C programmers.

I say pick a language for the task and enjoy it. If you need pointers for unsafe code, try C# or C++...otherwise VB is a still much simpler to use and more easily understood and productive IMHO.

To each his own.

Tue, Apr 22, 2008 Eric Salt Lake City

In interviewing candidates over the past 6 years, the number of resumés including C# has grown. Largely, I believe, because there was a perception that more money was available to C# developers. Microsoft marketed VB.NET as a "productivity language", but C# as a "powerful language with greater control".

A great help to the VB6 developers would be to make .NET truly first class in Windows and Microsoft applications. The VS Tools for Office are a joke. Sure, you can write a Word document in C#, but you still are making calls to VB6. Performance takes a huge dip and you must work around the Optional parameters.

Mon, Apr 21, 2008 Anonymous

I used to be a VB classic apologist (defender), but I say 'just let it go.' VB classic is dead. It's time to move on!

Thu, Apr 17, 2008 Steve Maryland

Give us a break Mark. While I agree with your basic assertion, someone with your experience should know better than to turn this thread into a marketing platform. :)

Thu, Apr 17, 2008 Mark Dublin, OH

We chose C# when started working with .NET back in 2002 primarily because we predicted stronger community support. We stayed with C# when we migrated our (1M+ Line) VB6/COM codebase to .NET architectures and we are glad we did not choose VB.NET. A case study of our migration is at www.greatmigrations.com.

Thu, Apr 17, 2008

VB is not treated as a first class member of VS and it should be. It is a widely used language and those that develop in should have the support just like all the newer languages have.

Wed, Apr 16, 2008 Chuck This side of the screen

Codeplex.com project tag results:
C#: 557
C# 2.0: 104
Total: 661

VB: 11
VB code: 2
VB.Net: 77
VB.Net 2.0: 14
VBA: 1
VBScript: 3
Visual Basic: 14
Total: 122

Conclusions: vanity coding is the future; FRED.net is dead, it’s no longer Bill Gates’ company. Let’s see… where’s that semicolon key at again?

Wed, Apr 16, 2008 Alan Williamson Melbourne, Australia

Unfortunately you are right. However in part the as a community we have ourselves to blame - we have far too many people clinging to VB6 instead of making the transition. Perhap-s that sens the measage that VB programmers are stuck in a time warp and MS are better off encouraging the move to C#. Me I'm a VB.NET person and don't really need Windows Live and if I did I could use C# compinents in my VB apps anyway.

Wed, Apr 16, 2008 Ted

Even the books for vb are biased.

I used the Microsoft step by step book to learn vb.net. There was a small chapter on data structures. i

am now going through the Microsoft c# step by step book and 1/3 of the chapters is on data structures.

Class structures are pretty much a foot note in the vb step by step book

Wed, Apr 16, 2008 jep Kansas

VB is the Rodney Dangerfield of languages. It gets no respect.

Part of the problem is VB's legacy of turning off type checking and not requiring explicit variable declaration. Another issue is VB developers who refuse to learn OOP or otherwise continue to write VB6 code using VB.Net.

VB programmers need to get with the times or be left behind.

Wed, Apr 16, 2008 Nagel Shaker Heights, OH

We use VB.NET. VB has narrowed the gap re: C# extensibility. C# has not narrowed the gap re: their rapid development shortfall.

Wed, Apr 16, 2008 Dan Toronto

Absolutely agree. I have been devloping in VB since VB 2.0 and it has alway been perceived as a lesser language.

This continues with VB.Net, I have recently been developing some webparts and although there were plenty of examples and templates for C# almost nothing existed for VB.

Shame on Microsoft for promoting VB as a powerful and rich devlopment language and then providing so little support.

Wed, Apr 16, 2008 Steve Maryland

Incidentally, regardless of your language preference, IMHO the real issue we ought to be beating up Microsoft about is that the .Net documentation (vis-a-vis examples) is terrible for ALL languages. Specifically, most sample code provided shows you how to do inane things that are almost completely useless and easy to figure out how to do without examples, while failing to demonstrate the use of more advanced techniques that are actually necessary/useful in sophisticated applications.

Wed, Apr 16, 2008 Tim Ford San Diego

I am appalled on this teams take on VB. It is very apparent that they have forgotten their roots, especially Microsoft’s roots. Microsoft started in the garage. Most of the small businesses start from the garage hobbyist. Why would a senior executive at Microsoft shun VB? The only personality I can think of is a close minded individual who has a very hard time thinking out of the box! I hope Microsoft’s team reconsiders the VB SDK. We all know that the only difference between the languages is style.

Wed, Apr 16, 2008 CodeMonkey

Stop whinning and learn C# ;-) (long live curly brackets!)

Wed, Apr 16, 2008 Steve Maryland

C# is gaining in popularity/support for a simple reason -- it's a "better" language. It's easier to write, easier to read, easier to debug, and easier with which to "architect" complex systems that are robust and performant. Period ... end of story.

I say this not as any kind of C# bigot (nor C, C++, or any derivative thereof). I have happily used every VB incarnation since version 2. I've personally developed on the order of a hundreds of thousands of lines of complex VB code, and managed the development of another million. I've taught VB, evangelized about it, defended it, and depended upon it. And I always will ... for the right project.

Because, you see, I also would not be impressed by a tradesman who would try to drive large hex bolts with a phillips head screwdriver. As a developer (I've been at it for nearly forty years, after receiving an MS in Computer Science) I've never thought about software development as oriented around any particular language -- it's about "systems". And, as a hiring manager for many years in large private-sector commercial software development firms, I was never very impressed by developers who had one year of experience ten times, as opposed to ten years of experience.

I guess it kind of depends on who you are and where you want your career to go. Just as there is still a market for old COBOL programmers (and even old RPG programmers), there will always be a market for VB6 programmers and C++ programmers and Java programmers. If you are the kind of person who prefers patching old systems to building new ones, then more power to you. And I mean that sincerely -- we need your skills also, because there will always be a lot of old systems that need patching!

But if you are the kind of person who wants to be a part of the future of computer science and/or software development, then the real key is being able to reinvent yourself every few years along with the industry. C# is a new tool du jour that helps us be more productive. It won't be the last. Nor is it entirely "new". Rather it is the evolutionary product of many others that came before it. It represents "lessons learned" since we began figuring out how to write language compilers about forty years or so ago. Ten years from now, it may well be supplanted by something else that represents yet another step forward.

So, go in peace and use whatever tool is best for you and your project and your customers. And if you'd rather stay in your comfort zone and not venture into new territory, then OK too. But at least be honest with yourself about the potential consequences of that decision for your career.

Tue, Apr 15, 2008 John

amen, brother.

Tue, Apr 15, 2008 Who's Smarter?

The point of programming is not to show how smart you are about the language, but to show what you can write with it. Only an insecure nut would think proving you can write picky code is an 'accomplishment', like solving a Sudoku puzzle. All it really shows is bad judgement in picking an unnecessarily difficult language to do the same job as an easier one will do. Would you hire a plumber who tried to impress you with how they can thread their own pipes when threaded pipes in all sizes are readily available?

Tue, Apr 15, 2008 ILoveVB

Smart VB compilers don't require as much picky syntax. This is not bad, it is good. More time can be spent writing and debugging code logic rather than spoon feeding a less-smart non-VB compiler. The whole point of computing foundations is to move the next set of activity up a level and make it less picky, right? Get with it, MS

Tue, Apr 15, 2008 John San Antonio

I write in VB6, sell my apps, and make a living. My program does all that users want, and when they want more, I have never found that VB6 couldn't handle their requests for added features. I could care less what sort of "
respect" I get. I don't write to get respect. I write for my customers to get money.

Tue, Apr 15, 2008 Rick Raleigh

I have fretted many times on trying to find examples in VB over the internet. I have used some sort of VB for years now so I was alittle shocked to find the newest versions hard to find examples that covered the new frameworks. I have read some of the other readers comments and cannot believe some of the responses. One person made a comment about VB never being meant to be OOP. My answer is that the fact that it is now OOP should show the resilience of the language which has been around long before C# was a twinkle in someones eye. That with the fact that there are still a lot of VB programmers should state the obvious to the readers and to Microsoft. The fact that Microsoft has again made another critical error doesn't mean that this programming language should be counted on less or completely done away with. They should rectify their error.

Tue, Apr 15, 2008

Cry me a river. There are about a million free utilities to convert C# code to VB. And you can compile the whole thing, then use Reflector to decompile it into VB. Is that really hard? If you can't read the syntax then you have no programming skills anyway.

Tue, Apr 15, 2008 Ed Colorado

Even in the software area, perception is reality, and the perception is that "real" developers use C#. Since the languages are virtually isomorphic, it becomes a "religious" issue after a while. Do you worship with semicolons or "DIM" statements. For me, I grew up with C languages in my formative years and now I greatly prefer expressing my ideas with C#.

Tue, Apr 15, 2008 Ken Boston MA

I did my first programming in the late 70's and have been a professional programmer since 1990. I have coded in maybe a dozen languages, including the world's most cryptic language, APL, and I have ABSOLUTELY LOVED VB since the mid-90s, as it let me do anything I could do in C or C++ (I never wrote device drivers) an order of magnitude faster, and an order of magnitude easier to read.

IMO the syntax of languages like C/C++/Java/Script are anchored in prehistoric times when every byte mattered, and thus the languages are full of cryptic symbols that are easy for compilers to read, but are an uneccessary translation layer for humans to read.

I love the verbosity of VB, especially when the IDE writes most of it for you, as verbosity + intelligent coding practices = self-documenting code, which is worth hours of time when you have to improve or fix it a year after you wrote it!

I am a human being who has zero desire to think like a machine in order to get my work done, so I have no need for syntax that is closer to machine language than the natural language that I use every day to structure my ideas.

Before VB.NET, I did sometimes use C++ to write DLLs, but since VB.NET I have enjoyed being able to reuse my OOP skills in the language that I find the best combination of power and ease of use.

A year or so ago I heard that some of the reasons that VB is not being supported as well as it could be is due to slow uptake of VB.NET by VB6 developers. If this is the case, then we have no one to blame but ourselves for not evolving into the future, as VB.NET give sus the best of both worlds.

Tue, Apr 15, 2008 John Raleigh NC

VB was a very nice alternative before Delphi and while C++ was hot. Now that C# is out, I do not see the need for VB except for some scripting (VBA) and simple app scenarios. Microsoft is just going where the money is.

Tue, Apr 15, 2008 Bruce

I adamantly believe, and always have, that it was a mistake to port over VB to .Net in the first place. The BASIC language was meant to be a basic, verbose language and transitioning it into the world of OOP seems ridiculous. And, I think the proof is in the pudding. The language ended up being idiotic with lovely verbs like Shadows and other unnecessary verbosities. The argument that it was necessary so that VB 6'ers could transition their knowledge to .Net is equally ridiculous. The learning curve was pretty significant already for .Net and the extra learning needed for the C# transition was quite minor. As a reference, VB buttered my bread for much of my career and I never programmed in "C" professionally. VB was never meant to move to OOP and should have stayed where it was.

Tue, Apr 15, 2008 Karl E. Peterson Vancouver, WA

Further confirmation that Microsoft considers VB suitable for disposable efforts only. The ClassicVB folks "got it" (boy, did we!) long ago. Time for all the VFred folks to clue in, too. Whining like disrespected Foxers only ignores the obvious. Microsoft doesn't use, and therefore has *zero* incentive to support VB (and their customers who have invested in it) in the long run.

Tue, Apr 15, 2008 Kevin Merrill Colorado Springs, CO.

This is just another example of the sort of language bigotry(however overt or subtle) that has accomanied the MS suite for years. Whats the point of the CLR if not to make your coding front end a matter of choice not feature set. How many time have we seen examples, seminars, etc... presented in C# with a total lack of regard for the hoards of VB guys toiling away out there. I have no axe to grind with whatever development toolset makes the best sense for a particular team to adopt, I just don't like the implicit patronization of VB as if it were still somehow a summer school project on a Commodore 64. Just my two cents for what its worth.

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above