Jump to content

Excellent intro presentation on Object Oriented Programming in LabVIEW


Recommended Posts

Good intro. I'm really looking forward to the advanced webcast in January.

0:52:55 - Regarding multiple inheritance:

"There are some advanced design principles which need multiple inheritance to be implemented. It's generally the case that these are not required in Labview."

Followed by Norm's comment:

"Saying patterns requireing multiple inheritance just aren't needed is shortsighted"

And the comment from the mysterious NI Leader 5 responding to a question at about the same time:

"And I am not denying that references are occassionally useful. But in a highly parallel environment like LV they are a signficant source of hard-to-diagnose race conditions and they are a performance hit since LV cannot perform any dataflow optimizations on the data. Many of the programs I have observed where people are -- happily -- using references can be rewritten with little effort to use by value syntax. It just requires a different mindset when designing the program. Rewriting those projects has frequently improved performance substantially."

Are there specific examples of typical by-ref designs being converted into a by-val design?

Link to comment
Are there specific examples of typical by-ref designs being converted into a by-val design?
None that aren't proprietary. But the effect is something we see commonly: an object that is essentially nothing more than a cluster, like, perhaps, a block of configuration data for some hardware, is passed around as a reference, being looked up from the ref each time a node needs data from that cluster instead of wiring the cluster through to all the subVIs by value.
Link to comment

But the effect is something we see commonly: an object that is essentially nothing more than a cluster, like, perhaps, a block of configuration data for some hardware, is passed around as a reference...

I can echo that. I'm looking at an app right now (not written by me and which I hope to never inherit, no pun intended) that follows the 80/20 rule in a BAD way!

Probably 80% of the data is passed around using references. Top that by having all the references being stored in global variables for "easy" access throughout the program. Then some of the data is dumped into global variables as well, just for good measure. I'm not a global variable basher. I believe they are a tool that can be used effectively when done properly on a limited basis by someone who knows how and when to use them, but this is crazy. frusty.gif

This program is begging for OOP techniques and you can bet if it ever lands in my lap, it will be rewritten.

Anyway, I look forward to viewing this presentation and the follow-on in January.

Thanks!

Link to comment
Then some of the data is dumped into global variables as well, just for good measure. I'm not a global variable basher. I believe they are a tool that can be used effectively when done properly on a limited basis by someone who knows how and when to use them, but this is crazy.
Your comments reminded me of a about a use of global VIs that might redeem them in the eyes of many LV programmers. I've been meaning to start the discussion, and your post here got me to do so. I posted the topic here.
Link to comment

This is a recorded webcast from Trevor Christman, a member of LV R&D on the Language Team with me. In this webcast, Trevor lays out the basic ideas behind OOP, explains how these are implemented in LabVIEW, and shows off parts of the LabVIEW user interface. This is an excellent presentation, and may help those of you who don't enjoy reading documentation learn the power of LVOOP. I fielded questions during the presentation, which you can see scrolling past in the chat window.

http://zone.ni.com/w...oc/p/id/wv-1766

First thanks for this I found it very interesting, I do really need to spend some time looking more at LabVIEW OO and start doing some....

.... however .....

please please please :frusty:, why can NI not make this type of thing in a downloadable form, am I being silly is this not possible with webcast ?

This is not the first and I am sure not the last really good webcast / video presentation I have come across on the NI site, that I have though wow what a great and useful presentation and I really want the opportunity to view them several times and at time when I have a bit more peace and quite. Also I have on several occasions tried to find a previous webcast /video on the NI site that I rememberer and find the links are not longer valid and I cannot find it.

dannyt

Link to comment
  • 5 months later...
First thanks for this I found it very interesting, I do really need to spend some time looking more at LabVIEW OO and start doing some.... .... however ..... please please please frusty.gif, why can NI not make this type of thing in a downloadable form, am I being silly is this not possible with webcast ? This is not the first and I am sure not the last really good webcast / video presentation I have come across on the NI site, that I have though wow what a great and useful presentation and I really want the opportunity to view them several times and at time when I have a bit more peace and quite. Also I have on several occasions tried to find a previous webcast /video on the NI site that I rememberer and find the links are not longer valid and I cannot find it. dannyt
<BR><BR>Id rather read the documentation I cannot see the displays. The rate is slower than mollases. More importantly ... never mind Sorry <BR><BR>
Link to comment
  • 6 years later...
  • 8 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.