If you attended my presentation at NI Developer Day back in March, you probably recognize the content of this three-part blog series. The premise of my presentation was simple and rather obvious given its title “You Already Know How to Use LabVIEW Classes.” In the end, object-oriented LabVIEW is simply a programming style that encourages software modularity and reuse. The doing is easy because it requires mostly bits and pieces with which we are already familiar.
You are here
In my previous post, I introduced the concept of object-oriented inheritance. I also suggested that, as a regular G developer, you already know enough to start writing your own object-oriented code.
Maintaining this same (I hope empowering) perspective, let’s dive into the next foundational principle of object-oriented programming: encapsulation. Look for a post covering the final principle (polymorphism) shortly.
You Already Know Enough to Get Started
If you do not currently leverage object-oriented programming techniques in your LabVIEW code (believe it or not) you likely know more than enough to get started. Object-oriented programming is not magic—it is a programming style built for modularity, and maintainability. As a regular G developer, you probably encounter clusters, libraries, type definitions, property nodes, and polymorphic VIs on a daily basis.
What is an interface?
An interface is the set of methods, messages, or VIs (think connector panes) that we use to pass data in and out of a software module. Simply put, what are the inputs and outputs, and how do they get in and out? A software module could be a class, a library, or simply a repository of VIs (in descending order of author preference).
Why are interfaces useful?
In the previous installment, we built a very simple program which consisted of a single actor and a single message. In this part we will create an application that is a bit more complex. This example consists of two actors: a DAQ actor which can read an analog voltage and a User Interface actor which provides a graphical user interface to display the data. Let’s get started!
So you've been to Core 1 and Core 2. Good start.
You've also experimented with LabVIEW and started making some VIs of your own. Even better.
But now after a few weeks/months/years of not using LabVIEW you wake up and you've forgotten how it all works and all the things you've learned. Whoops. Even worse, your boss reminds you about your deadline that requires some LabVIEW development and, by the way, is right around the corner. Not so good.
Ugh. So what do I do?
Have you ever wondered if a film about an aging Manhattanite being roped into joining his two friends on a cattle drive in the southwest could help you write better software?
Nested deep within the complex social commentary of the movie "City Slickers" there is a scene in which Curly, a software engineer turned cowboy, gives Mitch Robbins, the titular city slicker, advice on how to write great software.
How does software value relate to a 2000 year old Greek paradox?