Why did Microsoft even bother making VB.Net...
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
If you check out Tom Archers blog, there's comment about about why there examples are typically in VB as opposed to C# or C++. One of the reasons claimed is the huge number of VB developers out there as compared to C++ or C# devs, so it simply makes more sense to default to the most common denominator, in this case VB. Tons and tons of code has been written in VB, man programs by people who do not have the formal programming background that a lot of people here have, and with no real inclination to learn new languages just for the sake of learning new languages. And apparently, many of these people find BASIC easy to pick up and hack stuff together with. So, given a HUGE existing user base, VB.Net does make sense. Like Nish says, of all the languages, C# is probably the most arbitrary, as there was little real market demand for it. One could argue that C# exists because: - MS was (is?) pissed at Sun for dismissing some of MS's proposed additions to Java, specifically a delegate like keyword that essentially fucntioned like C#'s delegate keyword. In their defense, I think MS's delegate solution is *infinitely* preferable to the goofy anonymous class crap you have to write to wrap function callbacks in java. Sun was stupid not to acknowledge this. - Anders Hejlsberg was hired away from Borland (where he was responsible for ObjectPascal compiler and Delphi), to do languages at MS. I suspect a lot of the language and framework development he did for J++ and the Java WFC got migrated over into C#, since J++ didn't really go over very well. If you look at WFC you can see the pre-cursor to some (alot?) of the .Net framework. So C# was invented, and voila, the rest is history. But like Nish mentions, this could have just as easily been pushed over into C++. ¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF!
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
Well, I'm glad they did. Otherwise the VB shops would still be using classic VB (because most VBers don't want to actually learn, it's hard to get them to :-D), and VB.NET is by far better than classic VB. So at least if I'm ever employed at a VB shop it'll be .NET. Jeremy Falcon
-
Hmmm... I don't have a problem with it, or C#, or C++, or Java, or ... The underlying constructs are all the same to me. I get paid the same no matter what language(s) I use. "Clean" code is a matter of opinion. Tell me that, when doing Office automation, putting all the
Missing
values into the optional parameters, that a lot of the methods take, makes for cleaner code in C#! I'll take VB.NET over C# to do avoid that. The opposite is also true. C# supports unsafe code and pointers, where VB.NET does not. Big deal! If I need something like that, I'll write a C# class library to support my VB code. I get paid no the same, no matter what... RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming GnomeI gave you a 5 for that response because you are right. I'd way rather be thought of as a software engineer (language independent) than a C# developer. One has no limits the other is confined to one language alone. You make good points though. If you are putting food on your table, paying your bills and happy what else matters? Certainly not language I suppose.:)
I only read CP for the articles. Code-frog System Architects, Inc.
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
To make claims and to leave them unfounded is one of my pet peeves. For starters, I would not say that VB is not inherently sloppy, verbose perhaps, but not sloppy. Secondly, the automatic conversions of data types is merely a preference. The option is in the project properties and is known as "Option Strict", read the MSDN entry on how to use it inline. Also, in VB, readability is another matter, I can read VB fairly easily while I suppose some others cannot. In my experience, C# can be difficult to read if I abuse such things as increment operator and if I perform assignments within conditionals (bad example, but live with it: if ((i = 1) == 1) ). I can understand the occasional desire to use the assignment within a conditional, but personally, I prefer such things to take place outside the conditional. I am not against the use of either language, and in fact I use both of them myself. I just would not say either is inherently better than the either. -- modified at 1:34 Sunday 5th February, 2006
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
Interesting responses. I guess VB.Net does have some good points. It just seems from my prespective that c# is so much better, but you all know alot more about that than I do.
-
Interesting responses. I guess VB.Net does have some good points. It just seems from my prespective that c# is so much better, but you all know alot more about that than I do.
Better if always depending on the point of view. From a certain point of view every language is better than any other language...
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
Pumk1nh3ad wrote:
VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable.
I've never been much of a fan of the VB syntax, especially after using curly braces for years. However, I have to say that using it in VS.NET 2003 wasn't bad. The verbosity is not an issue since the IDE writes much of it for you, and formats it with the proper casing and spacing between variables and operators. Something that for years I had wanted in the C/C++ IDEs has been available for VB for a while. So it's easy to adapt to it. I also find that the extra verbosity actually makes the code more readable:
if (a < 1 && !foo())
{
...
}vs.
If a < 1 And Not foo() Then
...
End IfVB code reads more like regular English. Regards, Alvaro
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
Pumk1nh3ad wrote:
Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
Because managers sometimes still write code :-D Michael CP Blog [^] Development Blog [^]
-
Because they wanted "old" VB developers to switch to .NET?
Robert Rohde wrote:
Because they wanted "old" VB developers to switch to .NET?
Exactly! Interesting part is that VB.NET is not VB at all. Although they have similiar syntax they are quite different languages. "Government is not the solution to our problem. Government is the problem." -Ronald Reagan
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
Pumk1nh3ad wrote:
C# is so much better.
I wouldn't say it in this way. There are actually two things which are different among VB.NET, C# and C++/CLI. First thing is syntax, this is obvious and what syntax(language) to use is matter of style. Second thing is compiler and this is not so obvious. But I will not write here more about quality of compilers because it could lead to... you know... flame "Government is not the solution to our problem. Government is the problem." -Ronald Reagan
-
I do programming in my free time, and used to do VB.NET, then switched to C#. They both do the same things, but C# totally puts vb to shame. VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable. Makes me wonder why Microsoft even made VB.net in the first place, C# is so much better.
Oh no. Yet another language war! I'm just about to start a contract using VB .NET after only having done C# so far. But I've used classic VB a lot in the past too. To be honest, although I have my language preferences, I can live with most of them. One exception is Perl. However, in general, I disagree with the "why do we need more than one language?" school. Kevin
-
Hmmm... I don't have a problem with it, or C#, or C++, or Java, or ... The underlying constructs are all the same to me. I get paid the same no matter what language(s) I use. "Clean" code is a matter of opinion. Tell me that, when doing Office automation, putting all the
Missing
values into the optional parameters, that a lot of the methods take, makes for cleaner code in C#! I'll take VB.NET over C# to do avoid that. The opposite is also true. C# supports unsafe code and pointers, where VB.NET does not. Big deal! If I need something like that, I'll write a C# class library to support my VB code. I get paid no the same, no matter what... RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming GnomeI agree completely. Be prepared to use whatever is appropriate for the job. When other things are equal, use what you prefer. That's the professional attitude. I've mainly only used C# so far in .NET. But I'm about to start a VB .NET contract. I don't mind. Only problem might be silly recruiters who insist that you must have recent experience of X, Y, Z. So will C# jbs be closed to me when I finish this contract? Kevin
-
Pumk1nh3ad wrote:
VB is inheritly sloppy, but C# makes it so much easier to write clean, organized code. It also is better to have it where it does not automatically convert different data types automatically, that makes it easier to tell what you are doing. And the syntax, VB syntax is so messy and cumbersome, while C# syntax is clear and readable.
I've never been much of a fan of the VB syntax, especially after using curly braces for years. However, I have to say that using it in VS.NET 2003 wasn't bad. The verbosity is not an issue since the IDE writes much of it for you, and formats it with the proper casing and spacing between variables and operators. Something that for years I had wanted in the C/C++ IDEs has been available for VB for a while. So it's easy to adapt to it. I also find that the extra verbosity actually makes the code more readable:
if (a < 1 && !foo())
{
...
}vs.
If a < 1 And Not foo() Then
...
End IfVB code reads more like regular English. Regards, Alvaro
Alvaro Mendez wrote:
if (a < 1 && !foo()) { ... }
The ! operator is one of my pet peeves about the C-family languages. I agree VB is more readable here. Because of the lack of readability of the ! operator developers often compare to false, but this is less readable than if you could use a not keyword. I still oscillate between ! and comparing to false. The ! is particularly bad in contexts where you have if (something) followed by if (!something) You tend not to see the ! (no pun intended);) Kevin
-
To satisfy millions of their customers? Seems like a pretty solid reason to me. Charlie if(!curlies){ return; }
I don't get the impression they did that at all, given that VB.NET is completely not backward-compatible with VB6.
Software Zen:
delete this;
-
I agree completely. Be prepared to use whatever is appropriate for the job. When other things are equal, use what you prefer. That's the professional attitude. I've mainly only used C# so far in .NET. But I'm about to start a VB .NET contract. I don't mind. Only problem might be silly recruiters who insist that you must have recent experience of X, Y, Z. So will C# jbs be closed to me when I finish this contract? Kevin
Kevin McFarlane wrote:
So will C# jbs be closed to me when I finish this contract?
That probably depends on how you write your resume. Stress the fact that you're a language-independant developer with large .NET Framework experience and you should be fine. You'll, oc course, have to name-drop all the languages that comes standard in the Framework, because that's the game we have to play... RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
-
This is clearly a poor attempt at starting a religous debate between c# and VB. Pumk1nh3ad has been known to do this sort of thing from time to time. My suggestion is to ignore him. E=mc2 -> BOOM
On the contrary, he raises a very good point about the convergence of these languages and did so in a logical manner. The tigress is here :-D
-
Kevin McFarlane wrote:
So will C# jbs be closed to me when I finish this contract?
That probably depends on how you write your resume. Stress the fact that you're a language-independant developer with large .NET Framework experience and you should be fine. You'll, oc course, have to name-drop all the languages that comes standard in the Framework, because that's the game we have to play... RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
I do all this but, e.g., I was asked by one recruiter if I had recent C# experience. He got stroppy when I told him it was a silly question. And you do see ads saying "must be recent." Kevin
-
I don't get the impression they did that at all, given that VB.NET is completely not backward-compatible with VB6.
Software Zen:
delete this;
It was for syntax familiarity rather than backward compatibility. Same reason as why C# and Java follow C-style syntax when technically they should have abandoned it. But had they done so C-family developers would most likely have rejected C# and Java. Kevin
-
It was for syntax familiarity rather than backward compatibility. Same reason as why C# and Java follow C-style syntax when technically they should have abandoned it. But had they done so C-family developers would most likely have rejected C# and Java. Kevin
Agreed. From what I've read and heard, most VB developers start over from scratch when they convert. I think Microsoft dropped the ball, though, in not at least attempting to create some forward path from VB6 to VB.NET. Given their resources, it shouldn't have been that hard to create an automated tool that would do at least a partial port from VB6 to VB.NET, and then highlight the bits in the ported result that needed individual attention. One confession here; I'm not a VB developer. I think I've written only three or four VB apps total, none of which were other than small scale 'one-off' utilities.
Software Zen:
delete this;
-
Agreed. From what I've read and heard, most VB developers start over from scratch when they convert. I think Microsoft dropped the ball, though, in not at least attempting to create some forward path from VB6 to VB.NET. Given their resources, it shouldn't have been that hard to create an automated tool that would do at least a partial port from VB6 to VB.NET, and then highlight the bits in the ported result that needed individual attention. One confession here; I'm not a VB developer. I think I've written only three or four VB apps total, none of which were other than small scale 'one-off' utilities.
Software Zen:
delete this;
Gary R. Wheeler wrote:
I think Microsoft dropped the ball, though, in not at least attempting to create some forward path from VB6 to VB.NET.
They have done haven't they? It's called the upgrade Wizard? Or do you mean something else? Kevin