07-01-2020 06:48 AM - edited 07-01-2020 06:49 AM
@Bob_Schor wrote:
Another example of odd code, with no idea of its function ("What" does it do?), and with a partial picture of the code, one we can't inspect, can't execute, can't test, and we're supposed to "guess" the rationale behind the code.
I've never encountered a situation where a Rendevous seemed to be appropriate. I, for one, would be very interested to learn the rationale for this code, and would enjoy a chance to "play" with it. So by helping us to help you (by posting your code), you would also be helping us (to learn more about LabVIEW). Please attach your code, possibly including enough other routines that we have "something that can be run".
Bob Schor
I haven't come up with a use case, yet.
07-01-2020 10:58 AM
Not to intentionally derail the OP's thread, but just curious: what would you call this, if not "obfuscation":
It's purpose is to hide the actual Queue implementation from any user of the objects so they can't inadvertedly mess with the implementation.
Not trying to be flippant, I'm genuinely curious. I thought that's literally what "obfuscation" meant. They clearly left it open for users to poke around in and figure out, but to the casual user the underlying code is obscured by converting it to a refnum datatype.
They certainly had to do this to maintain conpane types, which doesn't fit the definition of "obfuscation". Anyway, just curious... thanks to all for the historical info 🙂
07-02-2020 02:30 AM - edited 07-02-2020 02:31 AM
@BertMcMahan wrote:
Not to intentionally derail the OP's thread, but just curious: what would you call this, if not "obfuscation":
Personally, I don't really assign much importance to terminology/semantics in casual conversation. People interpret things how they want anyway, so it's usually pointless to argue whether something is X or Y.
That said, obfuscation usually means you make the code more complex and unreadable, usually with the intention of making it hard to understand the code for someone who is not you. Sometimes automated tools are used to do this on code you release. This certainly isn't the case here.
Without thinking about too much, I would use "abstraction" to refer to hiding the internal implementation, but like I said, you could use any term which would make it clear and there probably are better terms which I'm just not thinking of at the moment. In any case, it's a minor side point.
07-02-2020 04:05 AM
@BertMcMahan wrote:
Not to intentionally derail the OP's thread, but just curious: what would you call this, if not "obfuscation":
tst beat me to it, but I would fully agree. Obfuscation is to make it hard to understand what is really going on. Granted for a LabVIEW newbie the code in question is hard to understand but that applies to many aspects of LabVIEW. Flattening and Unflattening of data for instance, just to name one, is another area where most users struggle greatly to understand what is going on, but it is hardly obfuscation (although it could be used for that).
This is protection of users to not shoot themselves in their feet by accident. It would be in fact more obfuscation if the LabVIEW developers had decided to create the additional refnum types and just hide the whole implementation behind native LabVIEW nodes! It would be functionally the same but there would be no way to look at the implementation.