Never Asked Questions about NI LabVIEW
Is LV application as fast as one written in C?
Is an executable built in LV hard to reverse-engineer?
Is LV environment secure?
Does it mean I shouldn't use LV?
So is NI bad to the bone?
Pierwsze cztery pytania były zadane już wiele razy i wiele odpowiedzi na nie padało, jak podpowiada mi google. Co do ostatniego, to na pewno słyszałem tego typu pytania na żywo

To trochę złośliwości na początek. Byłoby też łatwiej, gdybym rozumiał kontekst tego artykułu - co on ma właściwie pokazywać? Do meritum:
1. Zacznijmy od najgrubszej sprawy:
But it also generates the possibility of silencing criticism and limiting visibility of unfavorable content. And these are taking place as well.
(...)
It's a bit worse with unpaid zealots, as these are writing insane things about how good LV is. Somehow their comments are rarely removed, while any negative opinions are heavily moderated on the official forums.
Nigdy nie spotkałem się z tym, żeby ktoś cenzurował negatywne opinie na jakimkolwiek forum (jeśli tylko jest wyrażona w sposób kulturalny). To, co piszesz, to ciężkie oskarżenia w kierunku NI. Masz na to jakieś konkretne dowody?
2.
Is LV application as fast as one written in C?
Jaka miara "szybkości"? Jakieś konkretne wyniki porównania? Jaka aplikacja? Dlaczego ją optymalizujemy pod względem "szybkości", jaki z tego pożytek?
Arguments about program optimization are irrelevant, you can optimize C code as well, and get way better results for code size and performance.
(...)
Conclusion: LV is by design slower than C.
Oczywiście, możliwości optymalizacji w C są dużo większe w porównaniu do LabVIEW, co do tego nie ma wątpliwości. Tylko wracając do pytań powyżej - co optymalizujemy i po co?
W odpowiedzi do konkluzji, powinna ona brzmieć: "C by design allows you to write very highly optimized programs because it gives you unlimited low-level memory operations. Therefore, C is by design faster than most other languages".
That's because LV only compiles small chunks of code, and keeps them in separate VI files. This impairs the optimizer, giving it limited possibilities to influence the code.
To po prostu nie jest prawdą. Kompilator LabVIEW potrafi wykonać wszystkie optymalizacyjne cuda, o których piszesz ("It re-uses strings, re-uses parts of functions, in-lines functions and expands loops."). I w żadnym wypadku kompilacja przeprowadzana przez LabVIEW nie polega na sklejeniu małych kawałków kodu z poszczególnych VI w jeden niezoptymalizowany blok. Dobry punkt startowy w temacie:
https://www.ni.com/pl-pl/support/docume ... -hood.html
Not to mention, the code from each VI is executed under control of the LV Runtime Environment
Obligatoryjne "podobnie, jak .net i Java".
3.
Is an executable built in LV hard to reverse-engineer?
(...)
Conclusion: LV is by design easy to reverse engineer.
Tu się generalnie zgodzę, jako że nie ma szczególnych zabezpieczeń wbudowanych w exe tworzonego przez Application Builder. Ale mimo to: konia z rzędem temu, który zrobi pełny reverse-engineering średniej aplikacji z 2000 VIjów.
4.
Is LV environment secure?
(...)
Conclusion: It is unlikely that the environment is secure.
Tu nawet bym się pokusił o więcej i powiedział, że LabVIEW nie jest bezpieczne w rozumieniu bezpieczeństwa IT ze względu na znane podatności (nawet niedawno jakaś trzecia strona publikowała taki zestaw). Równocześnie nie znane mi są żadne przypadki próby ataków przy pomocy LabVIEW.
5.
Does it mean I shouldn't use LV?
(...)
If you're a 'real' programmer, LV has nothing to offer you.
Nie wiem kim są "prawdziwi" programiści. Kilkadziesiąt programów, które napisałem lub przyłożyłem do nich rękę, działa u wielu klientów i są, jak sądzę, dość realne (i programy, i klienci też). Programiści w firmie też wyglądają na prawdziwych, ale musieliby się sami wypowiedzieć na ten temat. Znam też trochę innych programistów LabVIEW z Polski i ze świata i przypuszczam, że oni też są prawdziwi... Chociaż fakt, ostatnio widuję ich raczej online niż na żywo, hmmm
LV allows to build a simple application fast and with no prior knowledge.
A z pewną wiedzą pozwala nawet na zbudowanie dość złożonych aplikacji, co poświadczam osobiście (i przepraszam za kolejny argument z doświadczenia).
There is a reason why LV isn't conquering any territories ruled by other languages. It is definitely not the best general solution.
Tu się absolutnie zgodzę, nie chciałbym pisać aplikacji mobilnej czy webowej w LabVIEW. Ale właściwie tylko ze względu na ograniczoność narzędzi do tego. Sama filozofia programowania w LV jak najbardziej nadaje się do ogólnego przeznaczenia, a może nawet w kilku miejscach przewyższała istniejące rozwiązania.
But there are specific use cases in which LV is as good as other environments.
I tu się też zgodzę, ale po dołożeniu, że są przypadki użycia gdzie LabVIEW jest lepsze niż inne środowiska (choćby test&measurement).
Edit: poprawiony znacznik formatowania "code" na "quote"