04-14-2012 07:34 PM - edited 04-14-2012 07:41 PM
I've gathered a lot of information on the internet yesterday about those three products.
I want to know if my understanding is correct or misled by garbage information.
I'll appreciate informative comments.
* LabVIEW
pros)
- Easy to get started
- Able to visualize lots of data flow in one screen
- Easy to implement concurrency
- Can be twice as fast as "Measurement Studio" and "CVI" to develop a control/measurement software.
- Control and measurement of NI devices can't be easier than LabVIEW
- People don't have to care about memory management as C programmers do.
- No more syntax errors.
- NI provides centralized support for LabVIEW
cons)
- Easy to consume lots of memory if not properly designed.
- when making mid-to-big sized programs, takes much more effort than text languages to organize the code to prevent it from looking like spaghetti.
(Meaning, without proper time-consuming training, it's very easy to make spaghetti codes.)
Organizing the block diagram is a pain.
- Easy to get started but the amount of effort to become an advanced user is relatively high compared to text languages.
- Hard to control concurrency.
- It's difficult to know where the program starts.
- LabVIEW UI looks ugly compared to .NET (Let's forget about .NET control import since few LabView programmers know how to use .NET languages.)
- Except .NET, DLL, and ActiveX, cooperating with other tools is difficult or impossible. Even ActiveX is not easy to use.
- Data flow is easy to visualize, but it's difficult to visualize an algorithm and complex logical operations.
- Declaring and modifying of array and cluster types take lots of precise mouse operations which are a pain.
Those types consume a lot of space in the front panel, too.
- Each VI requires two windows since there is no MDI, and IDE is heavy compared to eclipse and Visual Studio.
* Text Languages(Measurement Studio and CVI)
pros)
- Learning to organize codes is easier without a time-consuming training.
- In case of CVI, it requires little to no support from NI after reading the short CVI manual.
LabVIEW, on the other hand, requires constant support from NI when there is an undocumented feature in it.
- Inherently looks more expressive and concise than LabVIEW.
- Declaring and modifying of data structures(similar to array and cluster) are a lot easier than LabVIEW.
- Able to harness the power of external libraries(C and C++ libraries for CVI & C, C++, and C# libraries for Measurement Studio)
- Gives finer control over concurrency and program design to users.
- When making a mid-to-big sized GUI programs, programming takes less effort(not neccesarily less time) than LabVIEW without having to organize wires and block diagrams.
It is also easy to customize GUI elements to make them accomodate customized data types and to make them look better.
cons)
- Memory management should be handled manually( applies to C and C++, and it doesn't apply to Measurement Studio for C# )
- Textual programming takes more development time when comparing LabVIEW and text programmer of similar skill levels.(But I don't have any data to back this up.)
- Difficult or impossible to visualize the data flow. It can be a major setback when data flow is important.
Also, you have to implement data flow on text, which can be somewhat bothering without a block diagram.
- Interfacing with "each" hardware is non-trivial or difficult initially and requires some knowledges of those hardwares.
- Syntax errors can be annoying while getting used to, but syntax errors are trivial to fix because compilers generate errors about them.
(The real problem is logical bugs that can't be located by compilers, but LabVIEW is hardly free of logical bugs, either.)
- It's hard to grab the overall design of a text program at a glance whereas the overall design of a LabVIEW program can be obtained easily if it's made by an advanced LabVIEW programmer or it is small in size.
04-15-2012 08:33 AM