Why you shouldn’t hate LabVIEW
As we would say in my country, «el odio es libre», which means you are free to choose what to hate. But in this article i will try to give you good reasons why you shouldn’t hate LabVIEW.
Why i hated LabVIEW?
A while back, when i started working intensively with LabVIEW, i got this feeling that «I hated LabVIEW». The thing is that before that job, i programmed microcontrollers in assembler and in C language, so, changing from these programming languages into graphical programming presented a big challenge for me. The data flow concept was abstract and seemed that i couldn’t do basic things just right.
In my period of LabVIEW hater, i worked with at least other 10 engineers, and we all started getting frustrated with the tool. I even made this online research and found all this articles of people that, like us at that time, trully hated LabVIEW and questioned why we should use it, so, we must’ve been right, right?
LabVIEW is «easy»
The thing is that I was sold the idea that LabVIEW was easy.. And i kept that in mind and present everyday. «Yes, LabVIEW is easy but it can’t do this or that etc..» Truth is, that LabVIEW IS easy, for making quick prototypes for measurements systems.
For example, a quick acquisition with a DAQ, presenting some data in a nice chart, and saving that data in a CSV is something you can do quickly, and without needing extent knowledge in LabVIEW G. And that’s part of the magic and was one of the goals to develop a tool like LabVIEW in the first place. Make the life easier for technicians and scientific without programming backgroud.
However! this idea that LabVIEW is easy, in my humble opinion, is the reason why so many people ends up hating and understimating LabVIEW development. Because we keep this idea in mind, and try to extrapolate it into more advanced systems.
So, when we gain confidence, and try to extend the requirements of our software, we end up failing dramatically. And end up frustrated, and who we blame? of course we blame the tool, i mean, everyone does it, why shouldn’t i? «I was told it was easy and now it doesn’t work, it was a lie..»
G programming
LabVIEW G, is a graphical programming language, which follows a dataflow paradigm. This means, that as any other programming language, you need to learn it’s syntax, good practices, frameworks, design patterns, most common libraries etc.
If you have worked, for example, in mobile apps development, then you know that there’s a lot more than learning the syntax of Kotlin to develop good apps. Maybe with the syntax you will make a nice basic calculator, but if you need to build an app for an online store, that syntax will not do much for you. You will need libraries, good design patterns, data bases, plug ins and a big etc.
However, and here comes the unfair part. If a kotlin developer builds a «bad» app with a lot of bugs, who do you blame? The developer or the tool? I bet than 99% of people would blame the developer.. While in LabVIEW 99% of people will blame the tool.
Should we hate LabVIEW?
So, why was i so frustrated with LabVIEW, was it me or LabVIEW? It was probably LabVIEW.. of course it wasn’t me trying to develop the control of the generators of a submarine with just LabVIEW Core I and II !!!
Well of course it was me… I was trying to build a large complex application with the mindset that it was supposed to be easy and with the bare minimum knowledge to do so..
Life took me to the path of the redemption and i became a LabVIEW developer. In this path i found an entire ecosystem of preparation and formation. I got to know amazing LabVIEW architects and i realize that there are good practices and better ways to achieve what you want. You can develop great LabVIEW applications by following these practices but you need preparation, study, and a lot of consults to LabVIEW forum.
From hate to love…
The more i studied, the more i realized how wrong i was.. And after almost five years since that time, i still have a LOT to learn. But also i can say that i have seen and built great LabVIEW applications, and with LabVIEW i’ve been able to solve a lot of different challenges and integrated different technologies. Don’t get me wrong… LabVIEW is not the solution to all your problems. But it can help you a lot, if you use it right.
So, the more you learn how to properly develop large and complex LabVIEW applications, the more you like it and the more you see the power it has. If i had to build now the applications i built 3 or 4 years ago, i would do it differently. And that’s great. It means that i have learned ways to do things better. And i don’t blame the tool anymore. I take responsibility on the things i did wrong. And that knowledge inevetably, takes you away from hate.
To add to my point, all these companies that use LabVIEW today to solve incredible challenging applications can’t be wrong.. We are talking here about companies like space X or even CERN. But what do they have to solve all these challenges? Probably a lot of LabVIEW architects, and consultants, that have been a great part of their lives learning how to use it and that truly love LabVIEW development.
In conclusion, there’s time now to admit that being a LabVIEW developer is not easy, and it requires a lot of study. And certainly you can hate it. But before doing so, first make sure that is not due a lack of understanding of the application…
3 Comentarios
Fabiola De la Cueva
Great article!
My friend Brian Powell says that learning C is like learning the violin, you wouldn’t want anyone listening to you when you are starting and it takes a lifetime to master. Learning to program in LabVIEW is like learning to play the guitar, you can start entertaining with only a couple of chords but it still takes a lifetime to master.
Also, Steve Watts in his book «Software engineering approach to LabVIEW» named the 2 first chapters: «Why LabVIEW sucks» and «Why LabVIEW rocks» and describes pretty much what you talk about on this post. A big problem is calling LabVIEW «easy». It is straight forward but that doesn’t mean it is easy. It is easy to solve easy problems but complex problems need a good understanding of the language.
The only thing I would add to your article is that LabVIEW has a compiler, it is not interpreted as some people seem to believe. As such, a good understanding of how the compiler optimizes code can also be helpful when solving more complex problems.
Thanks for sharing!
Fab
Marcos Ramsdale
Good article. I agree that LabVIEW can be super easy and also can be just as complex as other languages.
I would like to see more books or articles for creating larger or stand alone applications. There are a lot of pieces that, in my opinion, NI could have more guidance for.
Another area that LabVIEW could be made easier is with GUI elements. For example making a table with text editing as native functionality.
For me, LabVIEW made learning other programming languages easier.
Thanks for the read, let us know more of you experiences.
Pingback: