VB Developers should learn to take criticism

A couple of days now I stumble across blogs which are written by VB.NET developers who feel offended by some remark of some MS employee I will not mention here or feel offended because someone criticizes VB.NET. I feel sorry for those VB.NET developers who feel offended: they do not understand that it isn't something personal, it's just criticism on a language and, sorry, every soul has the right to have that criticism. Sometimes it's criticism on the developers using VB.NET and then again, sorry, this is sometimes true, albeit it is based on generalization which is something that should be noted as well.

I've written VB5/6 COM components for IIS applications for years, but was really relieved when I could make the transition to C#. I really don't like VB or VB.NET, because of the various silly constructs that are in the language, like the most stupid construct ever created by man: "_". That's a personal opinion and perhaps not even a rational one. However saying that you find VB or VB.NET a really bad language makes some people get upset and make them start writing blogs about how wrong you are, not to mention the hate-mail you will receive or the "You are wrong!" kind of replies in blog comments.

These people don't get it. Using a language is not a way of life. It's simply that: using a language. When someone has a different opinion about the language you use than you have, it's just that: a different opinion. When you get personally offended by reading someone's opinion about a given language, you should take a step back, look in the nearest mirror and say out loud from the top of your lungs: "It's just software, for crying out loud!". Do you think I get offended when someone slams C#, the language I use every day? I'm more than happy to join the person at times. The reason for this is that criticism founded on rationality (a.k.a. constructive criticism) is good, it will make the subject of the criticism better in the long run. Criticism based on non-rational claims are not constructive and are just 'opinions' and can be ignored. "Java top designer slams C#"... gee... how surprising. I really feel offended now... 10, 9, 8.... . But perhaps he has something valuable to say which is true. If that's the case, embrace that criticism and follow it, support it and perhaps MS will take note of it and change something.

It seems however that having criticism about VB.NET is not welcomed to say the least, because of the set of people who get/feel offended by the criticism and ventilate that in every occasion they can find, like uber-zealous [insert random technology here]-advocates. To those I'd like to say: stop it. Look for the reasoning behind the criticism and when you find something based on rationality, embrace it, support it and also try to criticize your own language of choice so it will make it better in the long run. When someone slams the language you use, don't slam that person because you feel personally offended, try to find out if the reasons for the criticism are rational enough to follow them. After all, it's just software, a tool, not a way of life.

This is also true when you want to make clear that in some situations C# is better than VB.NET. These kinds of remarks get very fast out of hand, people start shouting "Don't start a language war!". Why would a couple of remarks about why language X sucks because of A, B and C and language Y doesn't result in a language war? Because of the people who feel personally offended by the criticism on their language X. Until these people grow up and get a life, the language X will not get better and questions about why their language X sucks because of A, B and C will not be answered. That's a shame, because it is so easy to debate pro's and con's about a given language so that given language will get better and better.

Not all blame is with the 'offended people' though. Microsoft itself helps prejudices about the IQ and skill set of the average VB.NET developer keep on living: refactoring is refactoring. It's called that way in the IT business, it's a general term. Therefore, don't re-name that. partial types is a term that is general within .NET. Do not change that in VB.NET. It will alienate these people from general discussions. Also remove silly constructs from VB.NET like the "_" character to concatenate keywords that form a single statement (the compiler doesn't need that character, it can perfectly find out where the statement ends) and On Error * and make it a language which doesn't drive people away from.

22 Comments

  • You are wrong!



    heh, I said it first! :P

  • Frans - I am not here to debate. I just wanted to point out that I was NOT saying anything about the language. Just about people saying vb programmers are idiots. That's quite different. I have never said anything about the merits (or lack thereof!!) of VB as a language.

  • Julia, again, you miss the point. My blog was about the fact that you even get offended by a remark made about VB.NET developers. Today I wrote VB6 code. That makes me a VB developer too. Do you think I feel offended when a C++ developer says VB/VB.NET developers are idiots? Not at all, because there is no reason for it. I know that I'm not an idiot, you and I know you are not an idiot, so why feel offended?



    I get the feeling some people get offended because they KNOW the remark has a certain matter of truth in it, however the remark is not true for them, but for other VB.NET developers, and instead of facing the reality, people feel offended. I think that's the wrong reaction. I've seen a lot of silly VB developers in my life I can tell you that. That doesn't make the remark "VB is a language for idiots" true, because that's a wrong generalization, however among the group of VB developers, there are a lot of very low skilled 'developers', much less than you'll find among C++ developers. Not very weird, because VB is much easier to use than C++.



    So instead of projecting the remark on yourself, look at yourself and if you find yourself not the subject of the remark, ignore it! After all, the remark is true for a given group of vb developers and I'm pretty sure you know that too. (not that any weblogs.asp.net blogger is among them, but they are out there)

  • As a professional programmer (regradless of the fact that I use VB), the only problems that I have are:



    1) When the powers that be (i.e. Microsoft) comes across with a statement that seems to state that the current language of MY choice is second class



    2) When someone (anyone) looks down on me for working in a particular language. Come on now, I have been a programmer for 23 years. I have been a Fortran programmer, an x86 ASM programmer, a COBOL programmer, a VB6 programmer, a C programmer and now a VB.NET programmer. I look back on this list and have to state that they all had there problems, but were almost all THE language of choice at one time or another. Does that mean that they are GOOD languages? In honesty, no. Not one of them. If I had the knowledge, I would design the langauge that I want - and it would be good. ;) However, they got the job that I was hired to do done. Do not look down on me for using a tool to get paid. It is that simple.



    David

  • John, exactly your remarks proof my point. I say something extra rude like "the most stupid construct ever created by man" and you find it offensive. It's a language construct which every language designer would declare "stupid" to begin with. I find it also very stupid.



    Now, I can't find that and express that, (I even explain why though, but that aside) without reading remarks like "you express it in a rude and disrespectful manner". Disrespectful to whom? The VB.NET developers? I don't think so.



    I used criticism on the language as my angle on the matter, because criticism on the language is the source for TWO problems:

    1) people who love the language feel offended and feel the urge to offend/counter the remark. This is useless because that's not the point of the criticism.

    2) the language looks weaker with more criticism and therefore people who still pick that language look (in general!) not informed that well.



    I ran into 1) when I entered the debate about Refactoring and the renaming of it for VB.NET. Very odd. 2) is a main source for the prejudice (!) that VB.NET developers are less skilled than developers using other languages. That's why I picked that angle.



    And I will keep on stepping on VB.NET developer's towes by expressing bad things in VB.NET in a more expressed way to make my point (but always argumented). The reason for that is that I'm pretty sick of it when I try to express a flaw in VB.NET nicely with arguments (like I've done in the past several times) I still get the mud thrown over me. People suddenly accuse me of starting language wars... Now, if I could avoid VB.NET for the rest of my life this wouldn't be a problem, but I can't. I have to use it from time to time.



    And this blog was not about the flaws in VB.NET, but the fact that some VB.NET developers think they have to feel offended because Mr. Box finds them underrated developers (in general) while he perhaps was refering to the group of VB.NET developers who really doesn't have a clue what software development is all about (and sorry, but that's a reality).

  • Frans - You are right about the fact that I (and some others) are being (wait - no - "was" - because I will no longer be!) overly sensitive. I did happen to write about that in my post last night saying "i'm not going to worry about that anymore because I know I'm good at what I do". So your point is completely taken in that regard. On a lighter note, understand that before .NET, I had never really had so much involvement with non-VB developers. So hearing all of this opinion so much in the past few years was new and it just seemed to pile on which is why I and maybe others felt so much pain all of a sudden. If you look at Carl Franklin's comments in one of those posts, he too, says "aw c'mon Julie get over it". He's been hobnobbing with non-VB developers for years and so he was used to it.

  • You want to talk about stupid language constructs? OK, here goes... the whole semi-colon 'thing' that every C based language uses (oh and don't forget pascal based). Why do I have to tell a language parser where the end of line is? Just because all of these languages do this doesn't mean it's correct. At least with VB, I only have to (on rare occasion), use the dreaded underscore character.



    Now, on to another point, it's not about taking critisism for being one type of developer or another. When is the last time you heard "c# developers are idiots" or "c# sucks"? Lemme see... you probably haven't. VB.NET developers are usually respectful of not being critical of other languages. Now you might say that this is because VB.NET developers "know that other langauges are superior". I don't believe this is true. I think that VB.NET devepers have a completely different mindset... one that is focused on getting the job done. Not one of being some technically superior snob who has joined the latest fad (yes, I just called C# a fad).



    I use every mainstream language I can get my hands on. VB.NET, C#, C++/ATL/MFC, Managed C++, Delphi (at one time), VB6, and Java. I can tell you that there are things I hate about every single one of these. There are things that I think are idiotic from my perspective, but I'm not going to blab this because I have enough respect for the language designers and their specific target audience not to do so. I'm just not that target audience for the whole pinky finger gymnastics associated with semi-colons and squirly braces. I also like seeing End If, Loop, End While, End Function, End Sub.



    I don't consider myself thin skined concerning being bashed around for being a VB.NET developer. However, I will be more than happy to put on a pair of gloves and enter a ring for a good fight if something someone says is completly off base concerning VB.NET. For example, the underscore character... as stupid as it may look, I prefer it over the alternative. ;-) Also, your ignorance is showing about VB.NET when you point out the 'On Error *' language construct. This is partially in there for allowing a path to transition to VB.NET from VB6. No real VB.NET developer would choose to use On Error after learning about Try/Catch; unless for some very specific and rare instance. Do I like On Error... no... I've never liked it. However, I look at it in the same manner as those stupid short stubby screw drivers you probably have in your toolbox. There are those rare times when you actually need that stupid tool ;-)

  • Frans,



    I'm starting to feel this is a hopeless conversation. If you can't see that phrases like "most stupid [insert anything here] ever created by man" are rude and offensive, then I don't how to get through to you. In this case, you're being rude to the designers of the language.



    Think about this, many people are able to discuss the strengths and limitations of various languages without starting flame wars, but you say you "get mud thrown over" you. Perhaps, it's not just the oversensitivity of VB developers, but it's also your tone that invites the "mud".



    As long as you engage in guilt by association, you will get a pretty strong reaction from people. If I were to go around complaining that people named Frans are rude, self-important, close-minded, and bad spellers, I wouldn't just be insulting you, I would be insulting people I've never met. Now, I wrote that sentence in an effort to help you see how your posts seem to others. I do not judge you or anyone else on the basis of a few comments on a blog. I don't think you are really any of those things, but you come across that way to me when I read your posts. If that's the impression you want to leave, then that's fine. However, if you want to leave a better impression with people, a little more civility might be called for.

  • Julia, thanks for this comment :)



    You got to believe me, that I once also got very offended when some C++ person told me VB was a language for dummies, while that person didn't even finish his CS study on a university...



    But you get use to it, and it's not worth the trouble. It's like getting offended when some Linux Sysadmin tells you that windows sux and is used by stupid people. Who cares! It's an opinion like there are so many in this world.

  • Cory:

    "You want to talk about stupid language constructs? OK, here goes... the whole semi-colon 'thing' that every C based language uses (oh and don't forget pascal based). Why do I have to tell a language parser where the end of line is? Just because all of these languages do this doesn't mean it's correct."

    True. In fact, when you forget the ';' it will tell you exactly where you forgot one. :) I'm all with you here :)



    But moronic language constructs was NOT the point of the blog, it was a tool to illustrate something ;)



    "I think that VB.NET devepers have a completely different mindset... one that is focused on getting the job done. "

    This is generalization, the same kind as "VB.NET developers are less skilled". I don't know why a lot of VB.NEt developers are not that critical towards their own language, perhaps because a lot of them are also not critical towards Microsoft or the OS they're using. Being critical using arguments isn't bad.



    "No real VB.NET developer would choose to use On Error after learning about Try/Catch; unless for some very specific and rare instance."

    I fear that that isn't true, at least not in the situations I've been in with VB.NET and other developers...



    However also you feel it disrespectful when you find something stupid about a language. You also think in a framework where criticism is something bad I get the feeling. Don't. Criticise what should be criticised, with arguments. Only THEN ISV's know what to change to improve their products.

  • "If you can't see that phrases like "most stupid [insert anything here] ever created by man" are rude and offensive, then I don't how to get through to you. In this case, you're being rude to the designers of the language. "

    Sorry? It's a free country, and I've placed an argument withthe statement why the "_" (the space required in front of it not mentioned) is stupid. If that's good design, I don't know what's bad design.



    Besides that: YOU feel offended by it. Now, THAT's the whole point of it. Not the argument of that silly underscore, it's there, it will be there, get over it. The point is: YOU get offended by reading that comment on VB.NET.



    Now, John, think about that for a change. WHY are you offended? Because I say something rude about a given piece of software you didn't design and which is rude for the designers which you aren't? Isn't that a little odd :)



    I hope you now understand what the point of the blog was: NOT the vb.net flaws (or the C# stupidities for that matter) but the weird reactions some people show when they read criticism about their language of choice or a generalization remark about users of a piece of software they also apply to because they use it once in a while.



    You may keep being offended by the 'rude' remarks I made, you keep proving what I ment.

  • Firstly, I agree about "_". It drives me nuts. However, the alternative is to end every statement with a ";" which is not necessarily any better.



    Secondly, I agree that the differences are just a matter of preference. The case sensitivity of C, C++ and C# has annoyed me for the last 15 years or so. On balance, I prefer VB.NET for this reason, but I admit it is not important.



    Thirdly, even if VB died out, it would live on in C# and Windows Forms. The Windows Forms programming paradigm owes more to VB than, for example, to MFC or 'traditional' Win32 programming.



    Fourthly, VB6 programmers have a right to be angry with MS, because they have been badly treated. For many big projects, migration from VB6 TO VB.NET is unrealistic, but VB6 has been discontinued. What other manufacturer would dare treat its users like this?



    Lastly, this reminds me of people making fun of Bob Dylan 20 years ago. Bob had the staunchest of fans, but was easy poke fun at.



    So basically, I agree. Loosen up VB.NET programmers.

  • Frans,



    I never said I was offended. Indeed, nothing you have done offends me. Freedom generally includes the right to make offensive, rude, and obnoxious remarks. I don't have a problem with that, but a wise man once spoke about freedom by saying that while all things are permissable, not all things are beneficial.



    The way you expressed your opinion about the underscore says more about you than about whether or not the way VB uses the underscore is a good design. I believe the tone of your comments contributes to the problem you are blogging about. If you want to convince people that you are correct (and, honestly, I don't know that that is your aim), I'm suggesting that you should use different tactics.

  • IMHO, here's the irony; I've come across many VB.NET programmers (even at the PDC) who hate critisism when something degrading is said about their core platform or their breed of developers, and then there are many C# developers (even at Microsoft) who brag about C# being light-years ahead of VB.NET when they havne't even progressed futher than a "Hello World" snippet in VB.NET. Cribbing about syntax by means of an underscore is no fun and makes no sense to me. On a broader note, (finally) ANY .NET language is as powerful and as resourceful as the other. Live with it!



    English is by far the most widely used language in the world but it doesn't make the French or Chinese or Sanskrit dialect any inferior. My point is: guys stop thinking in parallel paradigm.

  • Beginers All-Purpose Symbolic Instruction Code.

    C? It all flows from there.



    VB.Net introduced a lot of new constructs, but they chose to give the VB style names instead of using standard terms.

    Do the other .Net language rename everything (say J# ,Cobol.Net).



    There are two seriously different groups who moved from Studio 6 to Studio.Net:

    Those who wanted to stop using Basic and those who wanted to continue using Basic.



    I've seen good developers who want to continue using basic and bad ones who were eager to move to c#. There is no fast rule for which will do which.



    I think that "..VB.NET devepers have a completely different mindset... one that is focused on getting the job done" is not far off track, but where does that leave c#?





    Personaly, I have a very strong preference for c#, its a question of style.



    A semi-colon indicates the end of a line of code, of an instruction. I don't like long lines of code, so I really don't like using " _" to say this line does not end.



    Have you seen the source code of programs not written in "English"?

  • Reading all this, I wonder how C# coders will take the "healthy" critism when compared with SunONE/Java.... does C# support checked exceptions, inner classes, cross platform portability or the fact that a class is not the smallest unit of distribution of code? Java has - been there and done that!



    Atleast with VB.NET you can deliver the final product quicker. What good is C# in between VB.NET and Java?

  • java_poet: We don't care just as long as you give valid arguments which these are btw. As soon as I personally feel any language or platform beats the one I'm currently working with I'll switch, switch jobs even just to make sure the technology first my personal needs. Yes Frans language, platform to some extends it's "a way of life" but people tend to overreact just to increase their post count.

  • Alec : I think the language analogy is good, but I don't think that languages are all the same underneath.

    Each has hidden assumtions about "reality". A concept may be encapsulated in a single word in one language and yet require several words or even phrases in annother.



    I work in a mixed language environment, where I spend more time speaking my second language than I do speaking English.



    I have seen a lot of code written by people who's first language is my second, and for the most part, the quality of their code is tied to whether they try to write code in "English"

    or not. They try to mix maps.



    I've never worked in a non-English based programming language, and I pretty sure if I did, I would have the same quality issues if I tried to code in "English" in that prog. lang.



    I'm not a linguist, but from what I hear, Esperanto is supposed to be "the best language"...





  • VB.NET developers are under rated. I mean they are paid less for the same project than C# developers. C# has a prestige associated with it. I am just talking based on real life.



    abdu

  • julie lerman

    Posted @ 11/4/2003 2:35 PM

    Frans - I am not here to debate. I just wanted to point out that I was NOT saying anything about the language. Just about people saying vb programmers are idiots. That's quite different. I have never said anything about the merits (or lack thereof!!) of VB as a language.

    \\\

    \\\

    so i take it that vb is not a bad lang but the people who use are retards?



    btw i still use basic a

    it's by far better than all your fancy net crap.

  • I rarely meet any programmer who praises another's code unconditionally. VB programmers are no exception. BON, I come from RPG, well-known as IBM's language for idiots. Guess what, there's another .Net language that is a marriage of RPG with VB.Net. It's called AVR.Net and, because it is so easy to use and so productive with such easy data-access to multiple databases, we AVR.Net programmers expect to be called idiots any day now. --- I can do idiotic things but ASNA's AVR.Net makes me a genius.

  • Okay, here's the thing. VB does not, even now with OO constrictions, breed structured coding among developers. You need to be disciplined to still produced well structured and organised code. On the other hand, I have seen C and C++ code that is structured, but is as tearse as hell! So where do you draw the line. It isn't cool any more to write code that noone else understands, but it isn't cool either to write code that's messy or unstructured. You're not some black art guru... you're a programmer. Why make things more cryptic than they need to be. I hear guys going on about streamlining methods and making them more efficient..... but will someone else be able to tell how that method works by looking at the source code - sometimes code comments don't cut it when it comes to comprehending what's going on with code. I've programmed in 68000 Assembler, C, C++ and VB/VB.Net VB does have it's drawbacks, but it's still a useful language - there are ofcourse some things that I just wouldn't use it for though.

Comments have been disabled for this content.