Is Basic Dead?

Microsoft recently announced they will be dropping future support for Visual Basic .NET (VB.NET) and focusing more on C# and other language support. I find this to be a great loss, especially for metrology. For more than 50 years, Basic has been a staple in calibration and automation. It has proven to be a suitable solution for many problems.

Introduced in 1964 at Dartmouth College, Basic was designed to be an easy to use, high-level programming language. Designed as a language for people in other fields than computer science, Basic could be used to solve many automatable tasks. Then in 1972, Hewlett-Packard introduced Rocky Mountain BASIC (RMB) with the 9830A Controllers. RMB quickly became a powerful tool in the automation of calibration procedures. It is still used today by both Keysight in their STE-9000 programs and Northrup Grumman in their Sure-Cal software.

For me, I started programming in Basic back in middle school on the TI-99, then moved up to an Apple IIe as a freshman in high school where I was the teacher’s assistant in the computer lab. It wasn’t until I was stationed at White Sands Missile Range when I got my first taste of instrument control. Back then it was Visual Basic or LabView, and because Visual Basic was installed on my computer, the choice was a simple one.

Visual Basic was introduced in 1991 by Microsoft and it made writing application for Windows very easy. At the time, most applications were built using VB as the front end and C++ on the back end. In my case, VB was used for the User Interface and National Instruments drivers and a GPIB Controller on the back end allowed me to control signal generators and spectrum analyzers with ease.

Then in 2002, Microsoft launched Visual Basic .NET part of the .NET Framework. This was a huge improvement from the older VB 6 applications because it compiled in a true executable with all the compiler optimizers C++ and C# had. I could now write an application in VB.NET that would run just as fast as a C# or C++ application.

And the best feature of the .NET framework was you could program in almost any language you wanted—Visual Basic, C#, Pascal, and Fortran were several flavors of .NET. Similar to Java, they all compiled to a Common Language Runtime (CLR) called managed code. And there were tons of advantages, but for me is was that .NET was a 100% Object Oriented Programming language. Everything was an object all the way down to an integer.

This was about the time I started the company, and marked a turning point for me and Cal Lab Solutions. We decided to standardize on VB.NET and C# as the main programming languages for the company. As we built more and more tools in .NET we always looked at VB.NET first. After all, it was the programming language initially designed for people who were not programmers.

Any programmer can write code; good or bad doesn’t matter as much as “Can the next guy understand the code?” This was the biggest reason we chose VB.NET. I can put out a job posting for a programmer and get 100 applicants within an hour. But finding a good metrologist is another story. VB.NET makes it easy for a calibration tech to pick up programming, because Basic was designed for novice-programmers.

The problem with C++, C#, Java and many other languages is that they are hard for a non-programmer to comprehend. I jokingly call it cryptography, but little things make a difference; for example, “y = x++.” This code will store current value of x in y, then x will be incremented by 1. This is because part of the original design of C was to do as much as possible using only the fewest of characters, when programming punch cards was time consuming.

For metrology and automation, VB.NET is a way better choice than C#. Take for example C# code “if(x==y) {DoSomething();}.” The same code in Basic “If x=y Then DoSomething()” needs very little explanation. Imagine having to explain to an auditor reviewing your code the difference between “x++” and “++x” or “=” vs “==.”

I hope VB.NET never goes away! Microsoft’s announcement only said they will not be expanding the features in the language. And that is okay, because VB.NET does everything it needs to do. It is a great tool for Metrology!