Another thing I’m going to have to get to…

Frans has a very interesting reply to an entry by Roy. A lot of it is about particular design aspects of one language versus the other, which I think people can argue about forever and ever, but what caught my eye was:

I personally think Microsoft has made a mistake by introducing VB.NET. The reason for this is that VB.NET creates a serious positioning problem: what’s the real difference between C# and VB.NET besides some language definitions? Is one the real RAD tool and the other for the keyboard-lovers who like to do everything the hard way? Why does one have XYZ and the other does not and vice versa? I don’t see it why they’ve created these problems in the first place. […] I therefor won’t be surprised when Microsoft phases out VB.NET in the long run over C# […]

My first reaction to the question “Why did Microsoft create VB.NET?” is always to think of Louis Armstrong’s response when he was asked to explain jazz: “Man, if you gotta ask, you’ll never know.” And then my second reaction is: if you use VB.NET and
VC#.NET for a while, you’ll quickly realize that they are not just the same language with different syntax. To use a phrase that will date me, they each have a very distinct “look and feel” that goes beyond which features each language supports, and this look and feel is has significance. (To riff off my Louis Armstrong reference, to me VB feels a lot like jazz, while VC# feels a lot like classical music.)

But I realize all this touchy-feely stuff doesn’t really answer the question. It’s definitely something I’m working on nailing down because I think it’s vital that we be able to articulate it in a better way than we have in the past. And out of that explanation should flow the reality that VB.NET isn’t going anywhere in the short term or the long run. The free market, of course, gets the final word (as always), but we’re going to continue to bang away hard on new versions of VB.NET as long as there are people who are going to use them…

6 thoughts on “Another thing I’m going to have to get to…

  1. ewb

    Personally, I use both. But assuming VBA eventually yields to VSA and .NET in Office, I’m trying to imagine my clients’ many, many users trying desperately to write their Excel and Word macros in C#, "Let’s see, doh! Case-sensitive! Curly braces go where?! ‘For’ what plus plus something?!" I’m thinking VB will have a long, long life in .NET, and I’m glad to see someone else agrees. Why is it that folks get hung up on the C# vs. VB thing anyway when there are so many other languages available/coming for .NET to bellyache about? Is it because MS produces both? How come no one’s talking about COBOL or Eiffel or Perl vs. C#? "Oh, why that’s apples and oranges." I suppose, but that’s your point too about C# and VB, and I agree. Using their (important) differences as a basis for arguing one should go is nuts.

  2. Duncan

    The way I see it VB.Net is very much like English (where C# might be – erm, Latin and Java would be Esperanto?).
    It has oddities and is often verbose and it lacks things that other languages find useful such as masculine and feminine tenses but in the right hands it can produce great works. (Unfortunately it can also be used to create a great deal of trashy pulp works too)

  3. Frans Bouma

    Not a lot of people get what I ment with that snippet. I didn’t mean to say "C# is better than VB.NET so why VB.NET?". I tried to illustrate that MS has TWO and not ONE major RAD tools at the moment: C# and VB.NET. This means that people who are looking for a RAD tool are confused: which one to choose? That’s the positioning problem I tried to illustrate. This problem also causes design decisions in each RAD tool: if both RAD tools have equal features, the confusion is even bigger, so it is key to make a distinction based on featureset.

    However as soon as you do that (and MS has done that with VB.NET and C#), either side wonders why the other side has features they have not. Why is the VB.NET editor more clever than the C# editor? I’ll tell you: because VB.NET is positioned as a RAD tool and C# is not. MS can tell me 1000-times it is not so, but every person who has thought of positioning a product for 2 seconds knows why.

    So I think developers are hurt in the long run when MS has 2 RAD tools. Pick one, and make that the rad tool of choice. The other one is for the niche-developers like J# is.

    1. paulvick

      Yeah, I kind of did a take-off from your original comments, addressing questions that relate to what you were saying but may not have been exactly what you were saying. I do think that there is room in the world for both C# and VB.NET in a first-class way, but the onus is really on us to show that rather than everyone just having to take our word for it…

  4. Jeff Shantz

    I am a fan of .NET, and agree that there is more depth to the differences between C# and VB.NET than simply syntax. But your analogy strikes me as partially flawed; I’d be more inclined to compare VB.NET to pop music (or even boy bands) than jazz. Don’t get me wrong, I come from the VB6 school so I’m certainly not anti-VB. But as a past VB developer, I can admit that I always felt the language to be a bit klunky. 😛

  5. Pingback: Panopticon Central

Leave a Reply

Your email address will not be published. Required fields are marked *