Sharing the goodness…
Beth Massi is a Senior Program Manager on the Visual Studio team at Microsoft and a community champion for .NET developers. Learn more about Beth.
More videos »
This webcast series is devoted to those who want to learn to really use Visual Basic and what it can do! Learn from Ron Cundiff, Developer Evangelist and featured Microsoft speaker.
This is a 20+ part series that's underway. Check out the on demand recordings and sign up for the live webcasts here.
Quick question Beth.
I'm a VFP guy who has developed some VB.NET apps (mainly for mobile devices) and enjoy the language (if not the data handling) and am happy to see Calvin et. al. working on the data side of things.
I keep getting told by people to stay away from VB and to go to C# as VB will end up having backward compatibility problems as the .NET CLR develops.
Is this just C# elitism or based in fact?
I'd hate to start moving from VFP to another language that starts aging from the outset.
I don't know what you mean by having backward compatibility problems with the CLR. Can you be more specific? Microsoft is commited to Visual Basic and .NET for a very long time. Especially since parts of VS itself are written in VB.
The VB Team works hard to provide great experiences when using Visual Basic and working with data. The VB team also "gets" data (we got Calvin!) so if you're writing data-based applications, you'll be happy with VB for a very long time. Check out LINQ and the VB-only XML Literals they are implementing in VB 9.0.
As a former FoxPro developer myself, I find the syntax very easy and the language features top notch.
Here's one example (and I keep seeing them about). It's a quote by Andy Kramek :
"Definitely! I would go for C# over VB every time. First, there a number of features of C# that are ONLY implemented in C# so VB.NET is actually onnly a sub-set of the full Microsoft .NET capability (despite the fact that it is often claimed that the two languages are equivalent).
Second, Microsoft have stated repeatedly that they do not accept maintaining backward compatibility in VB .NET as a reason not to implement functionality in new releases of the .NET framework. Translation - they already think that "flagship" language and go with C#."
There are also examples of features that are only implemented in Visual Basic (static event handlers, custom events, dynamic typing, background compilation, my namespace, to name just a few). And there will be many more language features in VB 9.0. XML Literals will also be a VB-Only feature. Check out the language overview here: http://msdn2.microsoft.com/en-us/library/ms364068(vs.80).aspx
The "backward compatibility" you mention are basically wrapper functions implemented in an assembly (that even C# could reference) called Microsoft.VisualBasic. There was a lot of thought and discussion about making breaking language changes when designing VB.NET. For instance, in VB6 you could define arrays that are non-zero based, however, the CLR does not allow non-zero based arrays. The breaking of compatibility has to do with the completely new platform in which VB needed to work with, .NET. C# does not have this history (yet). So the areas of the language changes breaking code are pain points for VB 6 customers that the upgrade wizard tries to address, but it does not mean that VB would break current .NET applications. I'd suggest picking up Paul Vick's book "The Visual Basic Programming Language" for a great reference on the language syntax and some good anecdotes.
That said, pick the language you feel most comfortable with, or pick both! I'm just glad to see you moving to .NET! ;-) I tend to code much more in Visual Basic not only because it's easy and the syntax is close to Fox, but also because of the team’s mantra – to make VB the easiest to use language for creating Windows, Web and Mobile applications. The team chooses to innovate on the “experience” of developing applications – and that’s in line with the old FoxPro goodness :-)
Have Fun! Oh, and tell Andy I said HI! :-)
Ok cool. I'm happier now.
I heard compaints that VB wasn't as "pure" as C# but didn't care - I found that I could develop faster with VB.
I'll happily stick with it. I get annoyed in VFP now that there aren't constructors and overloading :)
I have coded tens of thousands of lines of code in both languages, and vb.net does much more than c#. It is also much faster(at least 125%) to write. In fact Im hard pressed to see any advantages to c#. Id go with vb.net.
I was under the impression that if you can do something in vb.net, you should also be able to do it in c# no matter what you objective...
I prefer vb.net (my head doesn't like all the void this and that statements in c#) so I'm happy to hear that there's no plans to discontinue it anytime soon...
My current boss tells me PHP is the way of the future - as if .NET if gonna disappear in the decade or something... Got any inside info I can show him? Personally I just think it's PHP elitism, but I'd like to prove him wrong anyway :P