For those that weren’t aware, the 2019 CLA Summit was held September 25-27 in Austin. I was fortunate enough to attend, and now that I’ve caught back up at work, figure I should highlight the points I found most interesting.
Worth noting, every session was recorded, and will be posted over at www.LabVIEWwiki.org along with the slides from each session. Major thanks to Q, Mark and everyone else involved in that effort!
To be clear, there was a TON of information there, and there’s no way I can do it justice in a single post. I’m going try it anyway, however, with full understanding that I’m leaving many things out. That said, I’m biasing my list towards things that are immediately actionable by the majority of readers, not just CLAs. So, without further ado, my top 5 takeaways (in no particular order):
1. Legacy Code
According to Sarah Zalusky, legacy code is any code that doesn’t have unit tests. A bold claim, but I think it’s a great approach. Her rational was that legacy code is simply code that you don’t want to touch because you’re too afraid of breaking it; a good chunk of the rational for creating unit tests centers around that concept.
2. JKI Flat UI Controls
Jim Kring gave a great presentation on UI design; you should read through the whole thing. There’s lots of great content in it, but I think one of the biggest things he mentioned that I can immediately use would be the JKI Flat UI Controls 2.0 release.
I’ve seen the posts floating around LinkedIn for a month or so now, and they looked great cosmetically, but for some reason I just assumed they were a paid add-on. In fact, they are free. Not as in free trial, or free for non-commercial use. Free as in free. I can see them being used on many UIs in my future.
While we’re talking about UIs, let’s talk about QControls. Again, I’d heard of them before, but I’d never actually taken the time to really learn about them. I went to one of Q’s presentations during the summit, and have to say, I’m impressed. I’m still digging in playing with them, so I can’t speak definitively, but I think there are a lot of use cases they can solve.
One of my biggest complaints about XControls is that as soon as you put one on the front panel of a class member VI, the XControl itself is immediately locked. The ‘why’ of that is a conversation for another time, but suffice to say, QControls don’t have that issue. That’s a win, in my book.
4. Where do we start?
In a side conversation with Allen C. Smith and a few others, the topic of the “complexity of Actor Framework” came up and why some feel it isn’t a good fit for new LabVIEW programmers. As the conversation went on, I started to appreciate a different approach to teaching LabVIEW.
What if we just started in teaching people using the perspective of OOP from the beginning? I’m talking Core 1 and 2 level here. Maybe they wouldn’t have a full appreciation for the power of OOP at first; they don’t need to understand access scope, dynamic dispatch in detail, or even necessarily inheritance for that matter. Just the concept of a class being a construct that has data associated with it and methods that can use that data.
In my experience, that’s a pretty easy concept to teach. The hardest part for me has always been convincing people that OOP isn’t some kind of super-advanced black magic. Once we cross that mental hurdle, it goes pretty quickly.
GCentral.org deserves a post in and of itself, which I’ll do eventually, but for now I’m just going to focus on the elevator pitch:
GCentral is a new project that is just getting off the ground. It will host information about reuse libraries that allows developers to collaborate more effectively. It’s not active just yet, but once it is, it should be a useful utility that helps us not waste time rewriting freely available things, while still having confidence that the things we are using are stable and/or reasonable for us to trust.
I STRONGLY encourage you to go check it out, read the FAQ and get involved!
I said five, but let’s be honest: there were tons of exciting things going on. So many, in fact, I couldn’t go to everything I wanted to, and am anxiously awaiting some of the videos to be published. I want to take a moment to just give a bulleted list of few more things that got me thinking.
- Single Responsibility Principle can be applied to UI elements. Check out much of the “Day 2” content. I specifically sat in on Ethan Stern’s “Composition Up Front: A Good UI is an Abstracted UI,” but I think there were a few different presentations that embraced that concept.
- Key realization while writing my own presentation: If you have two applications with the exact same architecture, you’ve just written the same application twice. (Also, if you watch my presentation, try to find the second time I gave it, recorded in Cafe C. Trust me, it was better.)
- Hope Harrison’s Pane Management is amazing.
- G Package Manager also deserves it’s own post, but for now, I’ll say just go check out gpackage.io. The tool itself seems very handy for reuse libraries. The website also hosts many packages, but it’s not browse-able which makes it a bit hard to find things if you’re just exploring. In a future post I’ll try to go through and provide links to some of my favorites.
The CLA Summit is incredible
I know a lot of people that aren’t CLAs because they don’t think it’s useful unless you’re looking for a new job. There was a time that I completely agreed with that. I (really) like seeing pieces of paper that have my name on them, but admit they aren’t super useful if you are happy with your current employer and position.
Over the years, however, the CLA Summit has completely changed my mind on that. Forget the piece of paper or the upward mobility it gives you… the knowledge and information you gain from a CLA Summit is gold. In my opinion, it’s much more useful than a trip to NIWeek and the event itself is free!
I’m also proud to say that I will be co-chairing next year’s summit. While the success of previous years is intimidating, I know next year is going to be great as well, and I’m honored to be a part of it.
One last thing…
LabVIEW 2020 is going to have legitimate, native interfaces. People seem to be excited about it. I’m not sure, but maybe I’ll be able to find a use for them some day. If I do, I’ll be sure to post about it.