LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Pros and cons of LabWindows ?

What would you say are the pros and cons of using CVI in 2019 ? I know there have been a few threads comparing it to LabView, but here I mean, generally speaking, if you wanted to convince somebody right now to learn it...

Here's my take on it:

 

PROS:

  • Universality of C -> speed, power, low-level access, widely known, taught and used
  • Speed of learning from scratch [Compared to IDEs like Eclipse]
  • Speed of development of new projects [if they aren't too complex]
  • Very good compatibility with old versions, stability
  • Good hardware support (Visa, IVI, etc)
  • User interfaces are perfect for use in scientific or engineering setups
  • Integration with existing NI hardware and software

 

CONS:

  • Dangers of C -> pointers!
  • Not open-source (*)
  • No GPU support for accelerated graphics
  • Limited and somewhat ancient looking user interfaces

 

What's you take on this ?

 

(*) I should expand what I mean here: there's always been a general lack of support of CVI from NI, particularly compared with LV. For instance there's no longer a certification for CVI since 2017. At this stage I don't think they make much money from selling CVI; they might as well open-source it. But that's just my opinion.

Message 1 of 8
(4,382 Views)

I would add:

CONS:

  • outdated version of C (only partial support of C99, debugging tools and math libraries do not support complex or double precision math, no Unicode)
  • outdated clang compiler / OpenMP support
  • outdated Windows SDK support (still no Windows 10)
  • outdated graph and UI controls, no support of WPF graphics
  • CVI still is no 64 bit application
Message 2 of 8
(4,370 Views)

What, and no pros ?!?   Smiley Mad

 

I agree with all your points but the last one: what should it matter if the IDE itself is 32 or 64 bits, as long as you can compile 64 bit programs ?

0 Kudos
Message 3 of 8
(4,364 Views)

of course there are the pros you have already mentioned, but you had asked for additional arguments Smiley Wink

 

Concerning 64 bit CVI: the current limitation of a 32 bit CVI means that 2 GB (somewhat more with some tweaks) is the limit for debugging information (source code browse information, for example), otherwise for larger projects CVI may crash

Message 4 of 8
(4,360 Views)

Based on my experience, the list of PROS is what @gdargaud wrote in the first message.

On the other side, the list of CONS is getting longer and longer, since the development of CVI is more or less halted (unfortunately).

 

  • The old compiler and SDK create problems when you try integrating external libraries (i.e. not developed by NI).
  • Handling of non-western languages on the UI can be done, but it's tricky and it doesn't work 100% (support of Unicode lacks).
  • lacks of C++ support (side by side to C support)
  • the feature in the IDE itself are quite poor (compared to modern IDEs)
    • no integration with git
    • no integration with tools for static code analysis
    • no integration with tools for automated test of code

Sadly to say, but from my side it has no sense for a newcomer starting with CVI in 2019.

If a company has years of background in CVI it's a realistic option, otherwise it's better looking somewhere else.

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
Message 5 of 8
(4,325 Views)

One advantage that has not been covered is the benefit of a single retailer that is also the OEM. NI supply the hardware, the drivers and the application development environment.  If you have a NI based data acquisition system, and for example,  you need to add GPIB communications, you can do that. If you encounter difficulties, you can haul in your local NI sales rep and explain your difficulty. That sales rep can (in theory) escalate  all the way to the teams that designed the hardware and wrote the software (well, except for CLANG).

 

This is different to the situation where DAQ cards may come from separate suppliers, and demand conflicting OS & compiler versions. If it all comes from NI, including the compiler then it is all NI's problem. As a programmer I know that 99% of the issues I face are due to my own errors, but in the case where it is not it is good to have the full support of the OEM, and not a re-seller who has imported a crate of cards from China, and is unable to rectify any issues and will most likely blame the compiler or whatever part of the chain they have not supplied. In contrast if NI have supplied the whole chain they will take responsibility for it. .

Message 6 of 8
(4,288 Views)

Hi @SteveD123,

I understand your position, but from my perspective I agree only partially.

NI produces good hardware and it should provide a full set of drivers that can be used easily with different languages and compilers.

For sure it's an advantage for NI itself if the customers use the full chain (HW + drivers + compiler + IDE), but this is not always an advantage for the customer.

Especially if the compiler and IDE are quite poor nowadays, unfortunately. Smiley Sad

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 7 of 8
(4,183 Views)

Pro

  • the math functions like FFT, curve fitting and other stuff
  • the error reporting during run time, although sometimes annoying

Con

  • CVI is dying 😞
-----------------------
/* Nothing past this point should fail if the code is working as intended */
Message 8 of 8
(4,178 Views)