As many of you know, last year Fab co-authored a book on LabVIEW with Richard Jennings. I was fortunate enough that she asked me to review a few chapters for her. As a way of saying thanks for that, she sent me a free copy. I’ve had it for a while. I read a bit of it last year and wrote a post about it. I finally got around to finishing it.
As you can imagine if you know Fab, it was quite thorough. I would say it is an intermediate book, not a beginner book. It kind of assumes you know a little bit about LabVIEW and software development in general. You should probably take at least Core 1 and Core 2 before you pick up this book.
The book has 8 chapters. I already reviewed the Unit Testing Chapter previously. So I am going to skip over that.
A History Lesson
The first chapter is about the history of LabVIEW. It’s useful if you are into history or just want to understand a little about why things are the way they are. It’s also useful if you inherit a lot of old code because it will help you appreciate the fact that in the old days, you didn’t have all the amenities that we do now so you had to do things differently. If you pick up old code and say “I would have done that differently. I would have used a map, or a vim, or an interface” It is worth remembering that the person who wrote that code probably would have too if they had existed back then. This chapter will also make you feel old if, like me, you remember when things like bookmarks were new.
The second chapter is about LabVIEW basics. It’s not very basic though. It covers a lot of the gotchas and behind-the-scenes things that are going on in LabVIEW. Even if you are already a pretty advanced LabVIEW programmer, you’ll still pick up a few things here. I definitely did.
Chapter three covers DAQ. If you aren’t an EE, you’ll probably want to pay attention to this chapter, particularly if you interact with hardware at all. Fab and Richard do a really good job of breaking down a complex topic into something manageable. However, there is a lot of information here. It is like drinking from a firehose. It does condense a semester-long EE class into 50 pages.
Chapter 4 covers OOP. The book does a good job of covering why OOP is important and what its strengths are. It covers the SOLID principles. It touches a few of the GOF patterns. They could have covered more of them, but then the book would be really huge. The book talks about the AZ Interfaces because native LabVIEW Interfaces had not yet been officially released.
Chapter 5 is on Frameworks. It covers both the AF and DQMH in depth. It does a very good job of introducing you to both and talking about when each is appropriate. Super-detailed chapter. Lots of examples.
Chapter 6 is on Unit Testing. See my previous article on that. Very thorough and detailed.
Chapter 7 is called Developing in LabVIEW for Teams. It should be called software engineering in LabVIEW. It talks about technical debt/wealth, modeling, SCC best practices, Setting up VMs, managing configuration, VI Analyzer and code reviews, scripting, and CI/CD. Very detailed. Lots of examples and Best Practices.
Chapter 8 talks about IoT messaging. It talks about how to set up and use MQTT, which I had not really played with before, so that was fun. There is a lot of chatter about web technologies lately and I’ve been seeing more clients request some sort of web interface, so I think this is a pertinent chapter.
Get the Code
All of the example code is available at github.com/LGP5/Resources
If you are an intermediate or advanced LabVIEW Developer, there’s a lot to like about this book. Even if you have been writing LabVIEW Code for a while, you are sure to pick up some useful tips. I highly recommend it.