Worry About The Message First, Then The Handwriting

We judge LabVIEW code all wrong. Straighter wires and prettier icons are not the solution to poor design.

Worry About The Message First, Then The Handwriting

I've had several discussions recently on various forums over LabVIEW style. I think we've been emphasizing the wrong things. I've felt this way for a while, but I couldn't quite put my finger on it. In a recent conversation with Taylor I've hit on a metaphor that I think works. The majority of us have been taught that the way to judge the quality of LabVIEW code is to judge the quality of the handwriting, punctuation, grammar, and spelling and not the quality of the content of the essay. The important part of an essay is the message you are trying to convey, not the manner in which you do it.

I'm not saying that handwriting, punctuation, grammar, and spelling aren't important. The person still needs to be able to make out the words and get at the underlying meaning. If any of these are missing or really bad, it can certainly detract from the message. That doesn't mean that we have to seek perfection in all these areas.  

Are yuo albe to raed tihs? if so pehraps spellnig inst so ipmortant. catipalizatoin eihter.

I asked chatGPT to "write me a grammatically correct sentence with correct spelling and punctuation that makes absolutely no logical sense". Here is what it came up with:

"Riding bicycles to the moon's library, I discovered that books there speak fluent potato."

Straight Wires Don't Improve Bad Design

How does this relate to LabVIEW? We've been taught to recognize straight wires and nice icons as good code. I'm not against straight wires and nice icons. I quite like them and yet straight wires and nice icons don't tell me anything about the design. I have inherited code that is nice and clean and makes about as much sense as that example from ChatGPT. It makes nice wall art, but poor code.

What I care about when looking at code is the decisions that went into it. Why did you use an array instead of cluster? or a for loop instead of a while loop? Why are you passing around a path rather than a file handle? Why does this subvi have access to this huge cluster when it only needs 1 element out of it? Why did you use a strategy pattern instead of a decorator? or a queue instead of a notifier? Why are you not capturing this error?

These types of design decisions are the important things. These are the content of the essay and the message we want to get across. We should be putting our effort into getting these right instead of debating about what icon fonts are best. These are distractions like punctuation and spelling.

Icon Fonts
by u/Sut3k in LabVIEW

If this post touched a nerve, good. My goal is to get you all to think a little bit more critically. If you liked this post, you might like this YouTube video. It is long, but it is quite good.