Well, after being called ugly and stupid, I can only console myself with an (apocryphal?) quote from Bjarne Stroustrup in the comments on an entertaining entry on language wars:
There are two types of programming languages; the ones that people bitch about and the ones that no one uses.
Sigh…. (More on the “ugly” and “stupid” comments later…)
After reading Daniel Cazzulino’s piece about why VB’s syntax sucks, I wrote a reponse rant called "Why VB.NET’s syntax doesn’t suck". Read and comment. =)
Paul, you know I don’t call YOU, your team or VB.NET users stupid when I say a VB.NET compiler construct is stupid.
the break; requirement in C#’s switch is also stupid.
The construct is stupid, because the context is KNOWN to the compiler but the compiler takes the wrong decision. The VB.NET syntaxis is ambiguous (foo = bar.Bla. Is Bla a property, public field, a shared field, a method?. i = foo(bar), is foo an array or a method? ), so it has to make decisions what is used already on a regular basis: ‘what is the context we’re in? -> take the decision’.
In the example I gave, the compiler clearly knows the context but makes the wrong decision and it shouldn’t have to. (after all: the background compiler in the editor DOES make the right decision).
That was the point.
Now a small rant:
Why o why do VB.NET developers/users take it so darn personal when someone criticizes VB.NET? Doesn’t criticism with arguments (I gave arguments) show weaknesses which can be addressed to make the stuff better? Apparently the people who feel personal offended by some criticism don’t want it to be better.
Ah, but if a decision is stupid and I was involved in making the decision, then what does that make me? 🙂
Seriously, though, my entry was supposed to be taken with a dash of ironic humor. I know, though, that nuance does not encode well into ASCII, so let me say that I totally respect the criticism that you were making. I subscribe to your weblog and read it because I respect your comments on Visual Basic even if I don’t always agree with them. It’s important to me to hear what people don’t like about the language and the product because otherwise how will it ever get any better? At the same time, listening to criticism of something that I’ve invested a lot of time and energy into can be difficult, so I deal with it the best way I know how: with a dash of good humor and by trying not to take myself or anyone else too seriously. I realize this entry may have come off as being thin-skinned, but I can assure you that it was not intended that way.
As far as the specific criticism you make, I partially agree with you and partially disagree with you. I was serious in that I would like to elaborate more in an entry soon.
Keep the comments coming, they are appreciated!
Frans:>Why o why do VB.NET developers/users take it so darn personal when someone criticizes VB.NET?
I think that applies generally to any developer of any language being criticised. It all boils down to how the criticism is made in the first place..if one uses derogatory terms like "stupid", "ugly" etc (even when justified), then one is bound to inflame and detract from a meaningful discussion arising out of the criticism..(I am the author of a VB critique and I too am guilty of this in places, but I hope to revise my tone to be more professionally curteous because language design is a non-trival task and mistakes are made..)
>> Why o why do VB.NET developers/users take it so darn personal when someone criticizes VB.NET? Doesn’t criticism with arguments (I gave arguments) show weaknesses which can be addressed to make the stuff better? Apparently the people who feel personal offended by some criticism don’t want it to be better.
I think it you substitute "C#" for "VB.NET" you could find lots of examples in the blogsphere where C# coders were taking it personal. Same with Java, Perl, PHP, ColdFusion, etc. etc. etc.
Developers, we get religious with our languages! And since religion is based on emotion, whadaya expect? 🙂
Ok, this is clearly a late comment (I’m reading the archives) and I would like to say that as a C# programmer, given the choice of:
Stack<int> stack = new Stack<int>();
Dim stack As Stack(Of Integer)
the VB code seems to be significantly more lucid then the C# code. With C# you have to know what <> does, where with the VB code you are taken in the right direction by the declaration itself.
Looking up the help would be easier as well, you just highlight and F1 ‘of’ and it will probably tell you all about generics, where with C# you have to tell it you want the <> operator.
All in all, I think I like the VB style better.
The URL I left above is broken as I made the mistake of using the prior company’s domain for my personal blog. Here’s the new one (and the URL is a lot cleaner this time around):