VB Beginners And Productivity

Published Sun, Jun 27 2004 13:38 | GregLow

One topic that regularly gets discussed amongst the MVP community is the positioning of VB in the market.

I come from a C-based background. I used to do spend my days doing (and teaching) systems programming in C. Yet, I choose to build our business apps in VB rather than C#. My major reasons are:

1. I can write code faster in VB than in C#. Even though VB is “wordier”, the intellisense works well for me and I find I'm much faster than in C#.

2. The IDE works better for VB. I'm not sure why I feel that but I do. I think the background compilation that VB does is the key.

3. The IDE is lousy for WinForms in C#. Every time you flip between the design surface and the code, it takes forever. On my friend Phil Best's application, on one of his forms, it takes over a minute to change focus on a super-fast system. In VB, you can barely see a delay.

Yet, no matter what good story the VB team have, the publicity machine at Microsoft seem to paint a different story. The latest is the new Express series of products, recently publicly mentioned on a Microsoft-watch site. They quote the company as describing the VB Express product as for “beginners learning to program” and describe the C# product along the lines of  for “computer science students”.

Microsoft need to stop describing VB with words like “easy” and “beginner”, etc. and start describing it with words like “productive”. I have no doubt it's easier to get started with VB than C# but that's mostly because the code is more humanly readable. This is best shown by the new Whidbey classes. I'm sorry but even though I can see an “elegance” in things like “int?”, I'll take “Nullable(Of Integer)” every time. Operators like “??” are barely worth discussing. I don't know what they're going to do when they run out of the ability to reuse punctuation characters.

 I really don't see any inherit advantage of “enum” vs “Enumeration” or “struct” vs “Structure” apart from if you can't type. If you can't, you need to learn. It's not an excuse for less-readable code.

Just my 2c rant today.