06-22-2006 12:25 PM
06-22-2006 12:53 PM
I honestly don't believe LabWindows/CVI (CVI for short) is going away anytime soon. There is an active community using it as this board should adequately demonstrate.
Both platforms have their strengths and weaknesses. LabView (LV for short) tends to be liked more by people who are not programmers first. The graphical nature of it tends to allow for quicker development of simpler programs. It gets a bit dicey when doing large projects and can be very unweildy and cluttered when you have complex program flow. There is a tendency for many instrument manufacturers to provide drivers for LV over ones for CVI. I personally find this to be an issue in rare instances because I have no problem with diving into the intstrument manual to find out what I need to do to get the results I want from the instrument in question.
CVI on the other hand is an ANSI C implementation with an IDE and a lot of libraries to support control of instrumentation and the GUI elements of a program. The GUI elements are part of the CVI run-time environment and not native Windows implementations (which believe me, you would really not want to have the native WIndows API exposed, it's a MAJOR pain to use). As an old-school C programmer who has been using the language since long before it became a subject of an ANSI standard, my personal preference is CVI (CVI 3.0 was my first exposure to the environment, things have changed a lot since then). I really do not like the LV way of doing things, I find it does not fit well with the way I solve programming problems.
So really, it comes down to personal preference. You can download the latest versions of both LV and CVI and install them in demo mode so you can try them out. That would be my personal recommendation on how to choose, see which one works better for you.
06-22-2006 01:22 PM
06-22-2006 02:49 PM
I would echo Martin's comments.
Capable C programmers tend to like CVI over LV. I don't think it'll go away very soon. It's used extensively in the defense industry. I've been using it since the days of DOS. Currently we use a license server for CVI to lower costs a bit, and we have an in-house CVI support team. It is somewhat pricey.
I think it's fair to say that LV appeals more to scientists in the sense that they can visualize a solution that doesn't require them to be competent programmers. The high level of abstraction provided by LV does require quite a bit of support, which NI is happy to provide. Their sales and field engineers tend to be adept at LV more so than CVI by my experience.
An engineer / software person is likely comfortable with the C programming language (it's still the lingua franca of the technical world) and more readily envisions solutions with C. I will say hacking out gobs of procedural code with C gets old ( not OO ) but you can use the CVI libraries with VC++ if you like, or the .net languages.
NI attempts to remove some of the harshness of dealing with the Win32 API and Windows OS environment with their libraries. There's nothing standard about a CVI library ( as compared to a formal standard) , but it does let you get something going with a shallower learning curve. I find in some cases (e.g. multi-threading) I'd rather use the Win32 API directly than the relevant CVI library.
Personally, I'll concede it'll take a lot of C code to implement a solution, but I am better able to estimate the time required and that I'll ultimately succeed, because I can get "under the hood" so to speak, it's a much lower level of abstraction. LV fans will point out you can incorporate procedural code (i.e. C) into LV apps.
I'm also able to implement concurrent (multi-threaded) software designs in a straightforward manner with CVI. Not sure how that works in LV.
A little knowledge is a dangerous thing though - I've seen some very poor CVI implementations. The paradigm with C is "trust the programmer" to be self disciplined and not do stupid things. If the implementors can't be trusted to do this, they shouldn't be using CVI. It's remarkable how much you have to know to be a genuinely good C programmer, given that it's a relatively small language that's been around a long time now.
75% of NI's software sales are LV from what I've heard.
Post this same question on the LV forum and you'll get a different take on this, I'm sure.
06-23-2006 08:07 AM
06-23-2006 08:48 AM