03-21-2016 07:05 AM
I was recently asked when would you use c/python and not LabVIEW.
As someone who has been working with LabVIEW Kool for quite a while I actually found it hard to answer as there seems to be very few limitations to what labVIEW can achieve.
LabVIEW is obviosuly great for manufacturing test systems, control systems, quick prototyping, developing ideas and I've even used it to build executables to decipher wireshark data, edit MySQL databases, encryption programs, etc.
However, in my head the following spring to mind that might force a project to lean towards python.
1. Development license ( free versus paid)
2. Disk Usage - labVIEW run time engine requires quite alot of space
3. MCU's/ Smartphones in particular could benefit from C/ python/ Java platforms
I recently worked in a company where all the R&D product development and manufacturing was done through LabVIEW but the regression testing was done through python. In truth, I probably could have set up the regression testing in LabVIEW but typically people working int hose environments will use PHP/ Python or similar and it is easier to hire a team on that basis.
I not trying to put down LabVIEW rather trying to answer a customer question honestly. Any ideas ow to answer the question?
Solved! Go to Solution.
03-21-2016 07:24 AM
I think the shortest way I can put it is: LabVIEW is best suited to hardware interaction.
Yes, you can write a small desktop app in LabVIEW...but the requirement to install the runtime engine (which can be quite slow) makes it difficult to create a 'portable' app (there are lots of workarounds...but still). I don't see why even a simple 'Hello World' executable should require 100's of MB of installation.
I have seen quite a few posts on here that have spoken about creating applications for managing data in a database (e.g. a stock inventory system), or running a LabVIEW executable on a server to act as a web-server - yes, you can use LabVIEW to do those things but there are other tools that I think are much more suitable (e.g. Apache/IIS and PHP/ASP) - basically a nice web-front end - I also feel the same about creating something to examine test data - I believe it should be done in a more appropriate tool (e.g. a web front end so anyone can access it without needing the RTE).
The cost of the development license is there, yes (but not for deployment) but it's more easy to justify that when it's just a small part of an expensive test/measurement system. I also don't really think that disk usage is that important these days with TB of HDD space being so cheap.
I feel LabVIEWs strengths are its ability to allow non-computer scientists to write their own code to run tests (e.g. prototyping a DAQ system in LabVIEW takes minutes...how long would it take in C if you'd never used C before?) for the beginner users, and to allow advanced users (LabVIEW professionals) to create advanced test/measurement/research systems much more quickly than they could starting from scratch in C etc.
03-21-2016 08:33 AM
@Sam_Sharp wrote:Yes, you can write a small desktop app in LabVIEW...but the requirement to install the runtime engine (which can be quite slow) makes it difficult to create a 'portable' app (there are lots of workarounds...but still). I don't see why even a simple 'Hello World' executable should require 100's of MB of installation.
.NET 4.6.1 installation requires 2.4GB of free space, but people don't think/react to it. Companies with LV should have the LVRT as part of the standard computer install.
Python is good for rapid prototyping if you're used to text based languages. LV is good for rapid prototyping if you're not and/or as you mention have hardware communication.
At a customer we've just made a nice hybrid, a LV program communicates with some systems and a Python library can communicate through TCP/IP and ask for parameters. That way tests can be customized and performed through Python scripts.
/Y
03-21-2016 08:46 AM
@Yamaeda wrote:.NET 4.6.1 installation requires 2.4GB of free space, but people don't think/react to it. Companies with LV should have the LVRT as part of the standard computer install.
Yes - but .NET is so embedded that it's included in Windows (7, 8 and 10?) / with Windows Update. Yes - if you're a company using LV then you should install it as part of your PC configuration but if you're not, it's a bit embarrassing to have to wait for 30 minutes? 1 hour? for NI software/drivers to install on a clients'/customers' PC for an executable that's only a few MB in size.
I generally don't mind it - but if I was trying to use LabVIEW for some lightweight/simple/non-hardware applications, I think it would become a significant pain point for my customers having to install my software and it probably is enough to persuade me to use a different language instead.
03-21-2016 09:05 AM
@Sam_Sharp wrote:
Yes - but .NET is so embedded that it's included in Windows (7, 8 and 10?) / with Windows Update. Yes - if you're a company using LV then you should install it as part of your PC configuration but if you're not, it's a bit embarrassing to have to wait for 30 minutes? 1 hour? for NI software/drivers to install on a clients'/customers' PC for an executable that's only a few MB in size.
I generally don't mind it - but if I was trying to use LabVIEW for some lightweight/simple/non-hardware applications, I think it would become a significant pain point for my customers having to install my software and it probably is enough to persuade me to use a different language instead.
Yup, people don't think about it, but it's there and it's big.
1h sound excessive, unless they have to download the NI runtime over a 256k line. 🙂
I've done a number of small applications, e.g. a database viewer/modifier. In this case the customer was used to our LV based test systems, so the RT wasn't a surprise and a very small factor, but you're right in that selling in a program to a first time LV client will be harder.
After explaining that it's a one time install i haven't faced much resistance. If anything it's the IT departments resisting a runtime install at all and i've had some issues with Policies messing with my programs (rights and stuff needed for the program).
/Y
03-21-2016 09:11 AM
Note the Windows Python installer (26MB) isn't exactly tiny either. One of the reasons the NI installer for the LabVIEW Run-Time is big by comparision is because we include all of our dendencies like .NET and the Visual Studio Runtimes to ensure the installation will succeed even if your system is disconnected from the network or is fresh and doesn't have anything pre-installed.
If Windows would gaurantee that .NET and the Visual Studio runtimes were always installed, we could obviously shrink our installers by a lot. In addition, we are looking to make our downloads more intellegent such that we won't download a dependency if you already have it installed.
03-22-2016 07:57 AM
I think aside of things like runtime installation (which can be a problem for high volume application but not for systems you only typically install a few times), the most important aspect remains what you are most comfortable with.
I know many programming languages and can in most of them create some code if really needed, but LabVIEW (for high level stuff and hardware IO) and C (for low level programming) are the ones I'm by far most effective in. If someone wants me to do a GUI application in Visual Basic or lets say Python I'm sure I can get there, but the end result will be likely less professional looking (I'm here not talking about exact OS hype style look and feel but functional and usuable UI) and take up more time to develop and debug than if I do the same in LabVIEW. I could also do it in C++ or C# which both would also take up more time to do for me although I can work with them too.
Doing Windows (or any other system) API programming in LabVIEW, Python or just about any other programming language than C, is generally a lot more work, pretty error prone and a total pitta to maintain in the long run, so there my preference is also clear.
05-21-2022 09:48 AM
its diffculte to founding refernce to learn labiew
i use it in my final year project ...i have alot of diffecult
library now is expired
05-21-2022 10:12 AM
Quick answer.
When you have someone other than me doing the development. My strengths lie in LabVIEW Development. You don't want to pay me to type text and, although I COULD do it, I wouldn't enjoy it as much. So, hire the people who best match your expectations.
It's not a SCIENTIFICLY testable question! It is a matter of management judgment.
05-21-2022 11:26 AM
Data Science, ML, AI and so on.