https://decibel.ni.c…/docs/DOC-18320
Motivation for this presentation:
At the 2011 CLA Summit, National Instruments asked us what we thought was missing from LabVIEW or what needed to be improved. I already knew NI’s position on this, but my feedback to NI and direct conversation with Stephen Mercer, father of LabVOOP, was that I thought LabVIEW needed to be able to invoke methods on object references. At the time that I said this, I knew that I wasn’t 100% up to speed on all the different incarnations of by-reference architectures or messaging architectures out there, but I felt (and still feel) that this would be a powerful (if not necessary) evolution for LabVOOP in the future.
Because I know Stephen has spent a great deal of his life pondering these issues (for which I am extremely thankful), and discussing them with scores of brilliant minds around the world (like you if you’re still reading this), I felt I needed to do some homework on these different techniques for achieving by-reference objects, if nothing else to improve my own skills, but also to strengthen or assuage my own position on this topic. The result is this presentation.
Originally this presentation was merely a book report of by-ref OOP techniques that I was aware of. I tried to document the implementation details of each technique, the common pitfalls, and the pros/cons.
Then I started providing justification for why by-reference support in any language was important, and demonstrated how problems that are simple to implement in other languages using pointers/references are more cumbersome in LabVIEW.
Then I provided a summary of where I think LabVOOP could improve, what I’d like to see possible, and what we can do currently.
Then I added suggestions on what methods and features by-reference classes might contain and how they can be implemented.
Finally I provided recommendations for class authors to assist in the decision making of class implementation and utilization.
I want to share this presentation with the LabVIEW community because I think there are probably very few resources like it available, a detailed discussion of object references in LabVOOP. If you find it educational or beneficial I would appreciate hearing that so I can get some validation on this topic for myself. To be honest this discussion is a bit out of my area of expertise, but I do think it’s an interesting topic and important to LabVIEW in the broader General Purpose Programming Language context.
Thanks,
Nate