05-29-2006 06:51 AM
05-29-2006 12:11 PM - edited 05-29-2006 12:11 PM
This is a topic that has come up frequently over the years. I will attempt to answer the three main points for the purposes of this thread.
1) Depending on what you are refering to about it not being possible to do global searches and replacement that isn't entirely true. One, if you have controls, indicators or constants based on a type definition, they will be updated throughout all the vi's in memory if you modify the type def. Two, if there is a function being used in many places throughout your program, clicking on one instance, and then doing a "save as" will cause that new named vi to replace all the ones currently in memory. You can then modify this new copy, or, closing labview, copy your new vi that was possibly created earlier, to the location & name that you just "saved as", thereby replacing it. Of course it will require that you have the same connector pane layout.
2) I'm not sure what other languages give you any additional flexibilities, but one "trick" in LabVIEW, for instruments in particular, is to encapsulate the instrument functionality in a type of sub-vi sometime called an "Action Engine", which is basically a case statement within an uninitialized shift register (a "LabVIEW2 style global"). Each case of the case statement contains one function, i.e. initialize, write, read, close. The various setup information is stored in shift registers in the while loop, so that this info is modular with the vi, doesn't have to be wired throughout the heirachy.
3) Learn event structures, they make the old hardship of polled user interfaces vanish, and provide a lot of other flexibility. There have been other threads addressing benchmarking applications written in LabVIEW and other languages. There are probably things in C++ that may run a little faster, but LabVIEW, when run, generates compiled code that is generally comparable to the others. If there is some little function that LabVIEW is slower, then it can be written in the other language and linked to, by CIN or dll, etc.
I have written large applications in other languages (Pascal, C, HPBasic) and will not consider doing one in another language than LabVIEW at this time without some really overwhelming reasons (sometimes that is all the customer will allow)
Message Edited by LV_Pro on 05-29-2006 01:13 PM
05-30-2006 08:14 AM
05-30-2006 08:48 AM