Today’s blog post was inspired by two search phrases that brought readers to this blog, which are “vgl programming” and “vgl programming syntax”. Strangely, these search phrases were popular on the day I posted about the LabWare LIMS, for some reason.
What is VGL?
VGL is the proprietary language for the Thermo Fisher Scientific SampleManager LIMS/LES. It stands for “Vacuum Generator Language.” That is because SampleManager was originally created by a company called “VG” for “Vacuum Generator” and, through acquisitions, is currently owned by Thermo Fisher Scientific Informatics.
For those of you programming other LIMS, the nearest likeness would be something like the LabWare LIMS LIMS Basic. Or, some might claim that both these languages look a bit like a type of Basic.
For the programmers out there, and the rest of you can hum and stare off into space for the rest of this paragraph, but the bottom line to this is that it’s not a heavily-typed language nor heavily syntaxed. There are no semicolons to worry about, for example. It does offer object-oriented tools so that you can create screens and such that are powerful. In addition, it has many functions that are specific to working with a LIMS, as well as the usual stuff, like mathematical functions.
While there has been a movement to begin to replace VGL with languages such as C#, there is still a multitude of VGL in the world.
Programming and Syntax
VGL is an easier language to learn than, say, C#, but it is still complex. There are things in it that require true programming knowledge. For example, the concept of creating and/or using libraries of code or that of declaration statements.
Learning the syntax requires deeply studying someone else’s code, and there’s plenty to look at if you open up the SampleManager program files. Or, there are probably courses given by Thermo Fisher Scientific but, be warned, no software vendor offers a lot of programming classes. Only a relatively small number of people take them and they’re just not offered nearly as often as the basic “how to use the system” courses, which lots of people need.
But if you look at the syntax, you’ll see that, at the top, there’s usually a standard header telling about what you’re looking at, followed sometimes by a main routine (if it’s not merely a library of routines, that is), then probably followed by more routines that are used. Statements use pretty simple formats, but the complexity comes in knowing what to put in those statements.
Even getting data from the database has been somewhat simplified. Search for the word “SELECT” and you’ll see that VGL allows you to directly look for database data. You’ll have to create the loop to traverse the cursor, but you’ll find plenty of examples around for that, too.
People always tell me that VGL is a fairly difficult language to learn, for a proprietary language. They compare it to LabWare LIMS Basic, claiming that LIMS Basic is really easy to learn, in comparison.
That might be so but the issue isn’t merely in learning what’s available but in learning how to use it. And, in that, all these “big” LIMS are complex. I’ve seen plenty of situations where people completely mess-up their LabWare LIMS with the idea that it all looks so easy. And it’s not easy in any of these cases. But, I’ll admit that VGL all by itself is more complicated to learn because it is also more powerful.
Who Should Use VGL?
I would say that any person who has worked with a “regular” programming language and knows a LIMS, well, should be able to learn VGL. In fact, if a person has programmed several LIMS, they can probably learn to program another LIMS, regardless the language being used and whether or not it’s a proprietary language.
But even more casual users can learn some VGL to make small changes or add small items. From there, some of those people will get interested in learning more of it and becoming VGL experts.