What’s wrong with VB.NET?

Question from Dennis who notes these benefits for it (in comments to the VB strategy post):

a) Windows Forms + all the native controls
b) Easy to develop easy to maintain
c) a+b = pleased customers


Here is my view, please add yours. (note I have never really used VB.net, but I have done a fair bit of C#)

Technically there is nothing wrong with VB.net, on the face of it it seems like a sensible choice. However VB6 devs I know that tried it said the whole .net thing made no sense until they switched to C#, then the logic of the framework became clear.

MS themselves classify C# as the Professional language and VB.net as the hobbyist/amateur one. Hardly what you need on your professional software developer CV. A great many VB6 devs picked up on this and moved to C#, so much so that recruiters/employers realised that often the switched-on devs worked in C# and the not so sharp ones in VB.net (there are exceptions of course).

Much documentation, even for Office dev is in C# only. That makes it hard to use VB.net, and it kind of drops hints that C# might be favoured at MS over VB.net. Historically MS’s favourite, internal use languages have had less breaking changes from version to version (think VC++).

I totally accept that VB.net is easier than C# for Office dev, but thats not hard, C#/Office is really quite painful.

I suppose the bigger question for me is not ‘whats wrong with VB.net’, but as Ross said: ‘whats the point of VB.net?’

I see it as a token gesture to appease the VB6 folks, I don’t see it as attractive for most VBA folks so who else is it for? (maybe it will be the VBA replacement in VSTA Office if that happens?). Edit: I don’t see VB.net as being near enough to VB6/VBA to be appealing to many, and also the code migration path is poor.

Because I don’t see a massive market for VB.net I would be nervous of investing time and effort learning it, just in case it does a VB6 in 1 or 2 versions time. C# has a better chance for longevity I think.

So thats my view. Technology wise there is nothing at all wrong with VB.net, the issues are more social/cultural.

what do you reckon?




14 Responses to “What’s wrong with VB.NET?”

  1. Dennis Wallentin Says:

    “MS themselves classify C# as the Professional language and VB.net as the hobbyist/amateur one.”

    Any particular public MSFT source available for this statement?

    If MSFT will go public with such a statement they will probably loose $$$.

    A Happy and Pleased hobbyist/amateur,

  2. Simon Says:

    Sorry Dennis I meant to update the post and forgot:
    ‘First timer/casual’
    I’m sure Ive seen ‘hobbyist’ somewhere deeper inside MSDN.
    Kind of sad they have labelled all those Office devs using the best VS.net tool for the job (VB.net) as casual.

  3. Trey Says:

    If we continue this line of thinking out, I think we’ll come to the conclusion that there should be only one language. I’ve extensively written applications in both languages (namely to keep the code base homogeneous for whatever shop I was coding for). I think any real developer knows that, on a fundamental level, all languages have something beautiful to offer. Yeah I’m out to get my first solid Ruby app underway!

  4. Dennis Wallentin Says:

    Thanks for the link Simon.

    I’m trying to figure it out why MSFT present VB.NET in that way. Personally I can live with it because I’m not concerned how MSFT labels me.

    Of course, it has/may have a major impact on MSFT’s relation with the large group of Office developers. If VB.NET is for hobbyist/amateurs who is VBA for?

    Trey – That’s an excellent point which I can agree with. The major issue would be who will provide it? MSFT or Sun/IBM or?

    Still a Happy and Pleased hobbyist/amateur,

  5. Simon Says:

    I think its possible to be professional even when the tools you use may not be considered by some to be ‘professional’. Havent we all lived with that for years developing with Excel?
    I think MS and many developers have a very narrow idea of what is ‘professional’. I think it is narrower and different from what those of us a bit nearer the business think – hence the classic business/IS divide.

  6. Dennis Wallentin Says:

    “Havent we all lived with that for years developing with Excel?”
    Implicit but never along the line that MSFT now labels VB.NET…

    In some public forums that explicit deals with .NET/VSTO/Excel services and Office I see that many ‘professional developers’ appreciate the knowledge of knowing the Office’s Object Models in and out.

    I can see that the larger group of professional Office developers lack knowledge & skill in C#, C++ etc but on the other hand they usually understand the business requirements good as they ‘live and work’ close to the businesses.

    For the group of ‘professional coders’ they have a great skill & knowledge of their development tools but would be totally lost if they don’t get a written requirement with lot of screenshots and with a page number of > 250 pages.

    Kind regards,

  7. Harlan Grove Says:

    I think this is just another iteration of systems programmers/application programmers. The former have never shown the latter much respect.

  8. Simon Says:

    Well put Harlan.
    ‘If your whole world is ultra technical, then anyone who isn’t your equal in that tech must be completely inferior’. It doesn’t occur to such narrow minded bigots that there is a world outside their choice of technology with equally valid and important skills.

  9. Ross Says:

    Skipping over the App programers vs App Devs issue. I’ll give my thoughts on whats wrong with VB.Net.

    VB.net has missed a trick. It is better to work with when working with office, but using .Net with office is such a pain it’s not much of a bonus.

    The whole point of VB was easy/Speed of use. It’s easy of use was (and still is) mocked – in some parts. So MS made VB.net a full/proper OO lang. Thats ok, however, they also made c#, which is widely excepted to be a “better” language to work with – thats to say the syntax is nicer (this it’s self is open to debate).

    So my real problem with VB.Net it that instead to MS sticking to there guns and continue in developing some thing that revolutionized the landscape of computer programing they thought, “people knock VB, so lets make it just like C#” – it’s a complete wast of a language! (well almost – it’s better with office)

    what if i want to write a small exe, that sorts a text file, – what current MS languase can i do that with? C++ or VBA, that it. All .Net languages need a full scale install (framework), with all the versioning around that. C# and VB are the same thing. VB it not needed, it adds no value, it should be something else, some thing different.

    Here’s a prediction, the number of people writing VB/VBA will decrease with VB.net and VSTO/VSTA.

  10. Simon Says:

    I agree totally, its as if they were embarrased about VB because some folks looked down on it.
    But if that is the case what chance has Office got of being a viable development component? Every ‘serious’ dev has nothing but criticism and scorn for Excel/Access and the folks that use them.

  11. Dennis Wallentin Says:

    “what if i want to write a small exe, that sorts a text file”

    Delphi 5.0 where we can create one exe file less then 5 kb without any overhead.

    Kind regards,

  12. Rob Bruce Says:

    Simon, the link you supply refers specifically to the Express editions, each of which has a different role, in the sense of different from each other and different from the professional and enterprise products.

    VB.NET Express exists to encourage people new to programming to be locked into Windows and the .NET framework.
    C# Express exists to tempt C and Java programmers to get into, and then get locked into .NET and Windows.

    BTW, the ‘Hobbyist’ reference you have seen is in the banner at the top of the page you linked to and refers to ALL of the Express products.

    As far as the professional products are concerned, Microsoft has always stated that all languages that use the Common Language Runtime are equal. VB and C# have slightly different characters, but they’re so similar that a competent programmer with a good knowledge of one and week or so to spare could probably switch quite easily. I prefer VB.NET because I have an aversion to curly brackets, no other reason, and I’ve worked in two very serious shops that used VB in preference to C#.

    On the question of Office development, I use VB6 and VBA for the simple reason that interop between COM and .NET is too slow. I heartily wish I could program every day with the power of VB.NET, but it’s just not practical, and probably won’t be until Office is re-written (again) from the ground up to be .NET compliant.

  13. Simon Says:

    Good catch on the express versions, but that was just one example. I still think VB has a reputation problem. Like I said though I have nothing against the language itself at all.
    I’m pleased you like VB.net, I like C# (I like the curly brackets!), and you are right to point out that plenty of serious development gets done with VB.net.
    Like you I still use VB6 and VBA for office dev, and I notice the decade of missing development on these compared to .net.

  14. Rob Bruce Says:

    I’ve no doubt that VB.NET has an image problem, Simon. I just don’t think that it’s anywhere near as much Microsoft’s fault as you do. In any case, as I said, a decent VB developer wouldn’t have any problem getting up to speed with C#, so in that sense it doesn’t really matter.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: