Recruiting VB.NET developers

Why is it almost impossible to recruit good VB.NET developers? Here’s my theory.

Many who call themselves VB.NET developers often fall into the niche of someone with lots of VB6 experience who has dabbled a bit with .NET. As a result, their VB.NET code looks just like VB6, with all its inherent problems, which is perfectly allowable through VB.NET legacy features. These compatibility components are great for migrating old VB6 code to .NET, but lazy ex-VB6 developers abuse them into new code because it’s easier than learning the correct .NET equivalents. For example, they use modules instead of classes, On Error Goto instead of structured error handling, and legacy functions such as IsNumeric or LTrim.

What you need is a .NET developer, someone who understands .NET regardless of language. Unfortunately, many of these people label themselves C# developers because of the (somewhat unfair) stigma of VB not being a ‘real’ programming language, and because C# developers are generally paid more.  So, if you want good VB.NET developers, hire C# developers, or better yet a language agnostic .NET developer.

Even if a C# developer has never laid eyes on VB code, nearly all differences are syntactic and can be picked up in a few days.  The real expertise in .NET is an understanding of the framework, object-oriented design, and good general development practices.

Related links:

Posted in .net. 1 Comment »

One Response to “Recruiting VB.NET developers”

  1. jfrankcarr Says:

    I agree with your final point that the key is understanding the .NET Framework and having good development practices. However, I don’t think that hiring a C# developer to do VB.NET programming is a particularly good idea.

    First, you would have a hard time convincing them to take the job and stick with it unless they were desperate for work or if you promised them that you were converting from VB.NET to C#.

    Secondly, there are a number of very worthwhile and useful parts of the Microsoft.VisualBasic namespace along with the not-so-great legacy features. Even some legacy functions, like Mid, can be useful in some situations. The trick for the good VB.NET developer is to know what to use, what not to use and when to use it. A C# programmer is likely to simply throw out anything that carries a “VB stigma”, including parts of the core language, which can easily result in VB code as inefficient as overuse of VB6 methods.


Leave a Reply