A Call to Kill VB

I’ve been around the software development industry a few years, starting originally in Classic ASP using VBScript, then changing over to .Net around the time it first made it’s debut. It was a natural change to upgrade my skills to VB.Net – well, because that’s what it was created for, right? Not just for developers, but for enterprises to have a clear upgrade path to the current technology for existing applications, and to be able to leverage as much as possible the existing skill-set within the organization.

Here we are, ten years later. VB.Net, why do you still exist?

After years of VB.Net getting the language feature Me-Too! treatment, it’s still out there. I’m still seeing developers clinging to this antiquated language with a firm death grip. And I’m still seeing new projects being started with VB.Net…

I realize that .Net was architected with many different languages in mind – so that there would be peace, love and harmony between all developers (except Java!), but is VB even relevant anymore? In fact, whenever someone talks about a .Net application, or working with .Net, I only assume C#. With VB.Net’s ancient syntax, it feels like a “programming for dummies” project that’s gone too far. It’s almost condescending every time I have to code… Staring back at me all smug – saying “you don’t know what you’re doing! Why are you even getting paid?!” OK that part is in my head, but it’s still a WTF feeling…

On the Microsoft side of things; when Microsoft releases new versions of the framework, like Silverlight for Windows Phone, or XNA, C# gets first class treatment, then a VB.Net version is hacked into existence. It’s obvious who’s the star of the show in their eyes when it come to .Net, so who are we kidding? Is VB’s existence even justified anymore? .Net toolsets have matured to the point where Microsoft could, and should be including an uprade wizard to go from a VB.Net project to a C# project. Why not?!

When a development team brings on a new hire based on .Net development skills, 9 out of 10 times they will stare in shock at the existence of VB.Net apps in an Enterprise suite, and have that look of disbelief that some of those apps are brand new.

Microsoft, isn’t it about time you put a bullet in this lame dog? It’s called progress – let’s stop clinging to the past and euthanize VB for the betterment of mankind.

The Importance of Coding Standards

I’ve always had an easy time of spotting how many hands have been in a certain piece of code during its lifetime. You see, there are so many different styles and preferences on how something can or should be done that each developer will do it their own way no matter what. From naming conventions, to code-organization, to business logic location – it doesn’t matter. In a loosely controlled environment, anything goes. It’s always been an issue wherever I’ve worked – with one outstanding exception.

In the military, standards establish specific requirements that a soldier must meet. These standards are usually established due to hard-learned lessons on what the best way to do something is. In certain cases, these standards can actually have a profound impact on the effectiveness of the personnel in question to do their job. Standards allow a team to work together as uniformly and as smoothly as possible. They help maintain discipline when faced with a difficult task, knowing exactly how to approach a specific problem, and they help with integrating new members into any team environment.

Now most development teams are not members of the military, but standards apply in any environment for the same reasons they apply in the Army.

I don’t think it can ever be stressed enough for a development team to be working with a set of well-established coding standards. Coding standards are the fundamental base-line for establishing the quality of code produced by any programmer, and an individual’s adherence to standards shows how much of a team player they are. The problem is that most environments do not have an established set of code standards.

Now I’ve heard before that ANY standards are better from NO standards. And well, I guess that could be right, but wouldn’t just sticking to industry-accepted coding standards be better? Wouldn’t it be easier when training new developers to not have to beat old industry accepted habits out of them? It’s a difficult thing to have to retrain yourself to do something the “wrong” way when you’ve spent years doing it in a way that has logical reasoning behind it. And it really doesn’t matter what I’m talking about, naming conventions, or architecture, logic and reason should be understood by any developer.

Establish a standard people. If you don’t know where to start, start here.