Speaking for myself (also a self-taught LabVIEWer), 1) Using clusters "to encapsulate data into logical data structures" is fine. The problems start when you group lots of un-related values into a cluster just to get rid of wires. By doing things this way, you might need to access a large cluster each time you want to read an integer value or something (You don't want to pass a cluster with a 1M array to a sub-vi when all aou want is a boolean value). Grouping logically allows you to use clusters, as far as I'm concerned. It certainly helps clean up wires, this is correct. As with most guidelines where things are frowned upon, it's generally only the mis-use which is frowned upon (Like Local variables). I would definitely use clusters instead of references which forces everything through the GUI thread.
2) Using data-flow programming thechniques requires you to organise your VI into blocks of (logically) related functionality. You then can create sub-VIs to handle a set of related functions, allowing you to clean up your diagram immensely. Think in terms of data sources and data targets. Organise your code according to this. 3) Why? What do you want to do with OO that you can't do with LabVIEW? I agree, many things need to be done DIFFERENTLY in LabVIEW than in C++, but nearly everything is possible. 4) One good way is to go back through your older VIs and clean them up until your satisfied. This will allow you to see where mistakes were made in the past. Otherwise, logical grouping, uncluttered diagrams and labelling are all very important. If your diagram doesn't appeal to you, re-organise it and give it to someone else to review. This can help a lot. 5) I don't know. I'm sticking to LV 6.1 for the time being. Hope this helps Shane.
