OP-ED: Second Class Citizenship Is a State of Mind

I was a participant in a discussion in Redmond recently. The nature of the discussion was basically that C# gets more attention, C# gets more features, and the result is that VB is unfairly cast as a second class language. The tone, to be quite honest, was whining. Somehow, the implication was that Microsoft could and should fix the prevailing perception that VB.NET is a second class citizen. I doubt Microsoft alone can change this perception, and I doubt that it is entirely Microsoft's problem to fix.

VB.NET is a first rate language. It can do anything that C# or just about any other language can do, at least in the arena it was designed to play in. From my observation post, it looks a little like some of the VB developers are holding on to the old VB6 ways of doing things and the C# programmers are not. There is no old C# way. This fact alone gives C# programmers the upper hand.

If VB.NET developers are using a high frequency and density of design patterns and refactoring in their VB implementations, the results will be as sound as similarly styled implementations in C#. If VB.NET developers are leveraging new productivity features of .NET, such as generics or LINQ, VB.NET developers will be as productive as C# developers. Can VB beat C# in productivity based on a RAD design environment like it did with C++? No; C# has the same design time capabilities. Can VB.NET surpass C# in any markedly demonstrable way? Probably not. C# and VB.NET, for better or worse, are basically fraternal twins, with VB's re-birth on the .NET framework, and consequently the circumstances of their birth going forward make them co-equals. The only prevailing problem is that VB has the ghost and baggage of a prior incarnation.

We all know that .NET is language agnostic. This means that a project can be done in C# or VB.NET or a single application can mix and match. VB and C# can use any part of the .NET framework, and the two languages share a high degree of the same language constructs.

The only requirement is that one use the same language within the same assembly.

In reality, VB.NET sometimes gets little features that C# doesn't get, like the My feature and literal XML (and it was VB.NET, not C#, that was mentioned on an episode of CSI: recently). So, on the media front perhaps and technology front for certain someone is looking out for VB. The only honest question to ask is whether or not the community is promoting VB.NET and new innovations. Are you writing articles and blogs? Are you buying books and learning new techniques? Are you attending conferences or user group meetings? Are you evangelizing VB within your organizations and communities? For VB to realize its new birthright, the answer must be yes.

Some of you go home at 5PM and don't spend a minute thinking about your work life. I respect your right to do that and in some ways it's probably a healthy way to balance life. Perhaps some of you folks don't want to invest in new aspects of .NET because it may mean personal sacrifice. Again, I respect your right to choose, but in this fluid economy I suspect it is a gamble with the poor roll of the dice meaning diminished earning capacity or unemployment. Some of you, perhaps, are closer to the end of your careers than the beginning and may be of the mindset that learning new tricks is too hard. Because I have been working for the better part of thirty years, I can see how you might feel. This position is probably very risky too. Unfortunately, there is some age discrimination in every business, including ours. A hedge against late-career problems is to be an invaluable contributor and thought leader. Studies have shown that constantly learning new things is physically and mentally beneficial (which will probably help you enjoy your golden years). And, there are those, like me, who having mastered a skill, such as staying in their comfort zone of master rather than apprentice. I recognized this potential early on and so learn new things that are completely out of my conform zone, like learning to fly, playing guitar, and yoga. The benefit has been a richer, humbler<g>, more enjoyable life, and a reminder that there are an almost infinite variety of things that I know little or nothing about. These things are reminders that I enjoy learning about programming languages and am pretty good at that.

VB.NET in reality is a tool, a programming language, one of many. Being mono-linguistic is probably not a sustainable hedge against a dynamic and ever-changing business climate. However, if the VB community—not the language all by itself, but the community—shine through its collective and innovative contributions, VB.NET will move up the food chain. But, no one can make you a second class citizen just by saying so and certainly not because of where you were born or the circumstances there under and certainly not by the programming language you choose to prefer. That's silly.

About the Author

Paul Kimmel is the VB Today columnist for www.codeguru.com and has written several books on object-oriented programming and .NET. Check out his upcoming book LINQ Unleashed for C# due in July 2008. Paul Kimmel is an Application Architect for EDS. You may contact him for technology questions at pkimmel@softconcepts.com.

Lansing is having a free Day of .NET training at Lansing Community College on June 21st. Check out the web site for details. The group likes to think of it as a poor man's TechEd (because it's free), but the content will be excellent.

Copyright © 2008 by Paul T. Kimmel. All Rights Reserved.



Comments

  • Right On !

    Posted by respect on 06/16/2008 12:41am

    Long Live Visual Basic !!! Using free online conversion, one can translate C# example to VB.net, so although there may be more C# examples or activity, someone more comfortable one way can still easily understand/converse with someone else that's more comfortable another way. Maybe part of the problem is that many hard-core VB'ers revolted when .NET was launched and VB6 was deemed "Legacy". When you have 1/2 the VB community whining at itself, others will look upon this and start whinning about the whinning. It can be a tough transition for some VBer's to learn .NET and OOP, without any formal background, and nobody likes their happy world turned upside down; but once the realization of the power and flexibiliy kicks in, the whinning should stop. :-P

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • On-demand Event Event Date: September 17, 2014 Another day, another end-of-support deadline. You've heard enough about the hazards of not migrating to Windows Server 2008 or 2012. What you may not know is that there's plenty in it for you and your business, like increased automation and performance, time-saving technical features, and a lower total cost of ownership. Check out this webcast and join Rich Holmes, Pomeroy's practice director of virtualization, as he discusses the future state of your servers, …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds