Ceci est marqué comme une question subjective, j'espère cependant ne pas avoir trop de votes négatifs.
LV semble offrir une alternative graphique intéressante à la programmation traditionnelle basée sur du texte. Si j'ai bien compris, ce n'est pas un langage de programmation basé uniquement sur la virtualisation et l'acquisition de données. Néanmoins, il semble que ce paradigme soit lié au nom de son créateur.
Ma question revient parce qu'elle ne semble pas être largement utilisée pour des applications polyvalentes. Je ne suis pas un expert en LV, je ressemble plus à un apprenant. Je m'habitue encore à LV.
Labview est fantastique si vous avez du matériel National Instruments et que vous voulez faire quelque chose comme acquérir, tracer et enregistrer les données.
Lorsque vous démarrez une interface avec des périphériques personnalisés, le câblage entre les modules devient compliqué car vous devez effectuer tout le travail de manipulation des chaînes pour l’entrée et la sortie sur un périphérique.
Sur mon lieu de travail, nous avons constaté que nous devenions ennuyés de devoir créer des VIs volumineux et compliqués pour l'interface avec des périphériques. Nous avons commencé à les écrire dans .NET et à les connecter à Labview.
Finalement, nous avons fini par mettre au rebut Labview et utiliser NI Measurement Studio pour Visual Studio pour nous donner toutes les belles commandes de NI (tracé de forme d'onde, réservoir, jauges, commutateurs, etc.) avec la flexibilité de C #.
En résumé, même avec quelques écrans de 24 ", le câblage du code Labview peut parfois devenir trop complexe et il devient impossible de commenter, de déboguer et de rendre extensible toute modification future. Je suggère de jeter un coup d'œil à Measurement Studio for Visual Studio et en utilisant votre langage .NET préféré avec les jolis contrôles NI.
Mes deux expériences avec "alternative graphique [s] à la programmation traditionnelle à base de texte" ont été terribles. Je trouve que ces langues sont lentes à utiliser, difficiles à modifier et inexpressives. Les déboguer est un cauchemar. Et ils n'offrent aucun avantage réel.
Certes, cela fait longtemps que je n’en ai pas regardé un, mais les avis des autres personnes à qui j’ai demandé à leur sujet n’étaient que tièdes, je n’ai donc jamais pris le temps de regarder. Les raisons de regarder à nouveau sont les bienvenues et seront prises en compte ...
Labview peut être utilisé pour créer de grands projets logiciels complexes. Labview est sans aucun doute beaucoup plus amusant à utiliser qu'un langage basé sur la syntaxe. J'ai programmé des simulations dynamiques mathématiquement denses à l'aide de labview. Les nouvelles versions de Labview incluent beaucoup de fonctionnalités intéressantes, en particulier pour l’utilisation de plusieurs processeurs. J'aime beaucoup Labview. Mais je ne le recommande à personne.
Malheureusement, c'est un cauchemar absolu pour autre chose qu'une simple acquisition et affichage. Il sera peut-être un jour suffisamment développé pour être considéré comme une alternative viable aux langages à base de texte. Cependant, les développeurs de NI ont systématiquement choisi d'ignorer les trois problèmes fondamentaux qui minent la vision des laboratoires.
1) Il est instable et criblé de bugs. Des milliers de bogues signalés sur les forums de support de labview ne sont pas encore résolus. Certaines d'entre elles sont assez graves, telles que des fuites de mémoire ou des erreurs mathématiques dans les fonctions de base.
2) La documentation est atroce. Le plus souvent, lorsque vous recherchez de l'aide avec une fonction labview dans le fichier d'aide local, vous trouvez une phrase qui ne fait que reformuler le nom de l'élément sur lequel vous essayez de trouver des détails. par exemple. Un utilisateur consulte le fichier d'aide sur les paramètres du mode de filtrage des textures. La seule chose écrite dans le fichier d'aide est "Mode de filtrage des textures - sélectionne le mode utilisé pour le filtrage des textures". Hé Merci. Cela clarifie les choses, n'est-ce pas? Le problème va beaucoup plus loin dans cela; très souvent, lorsque vous demandez à un représentant technique d'instruments nationaux de fournir des détails essentiels sur les fonctionnalités de labview ou sur le comportement spécifique des fonctions mathématiques, ils ne savent tout simplement pas comment fonctionnent les fonctions de leur propre bibliothèque. Cela peut sembler exagéré, mais croyez-moi, ce n'est pas le cas.
3) Bien qu'il ne soit pas impossible de garder le code graphique propre et bien documenté, Labview est conçu pour rendre ces tâches difficiles et inefficaces. Pour éviter que votre code ne devienne un désordre enchevêtré et déroutant, vous devez systématiquement utiliser (toutes les quelques opérations) des structures telles que des clusters et des contrôles définis de type sous-vis et géant (pouvant s’étendre sur plusieurs écrans dans un grand projet). Ces structures consomment de la mémoire et détruisent les performances en obligeant labview à créer plusieurs copies de données en mémoire et à effectuer des opérations gratuites, dans le but d'éviter que le diagramme ne ressemble à un spaghetti de couleur arc-en-ciel sans commentaire ni texte. Programmer dans labview, c'est comme jouer à la peinture avec le diable. Imaginez votre projet logiciel géant écrit sous la forme d'un organigramme de la taille d'un mur, sans aucun mot dessus. Imaginons maintenant que toutes les lignes se croisent mille fois, rendant ainsi impossible le traçage du flux de données. Vous venez d’envisager le moyen le plus naturel et le plus efficace de programmer en laboratoire.
Labview est cool. Labview s'améliore à chaque nouvelle version. Si National Instruments continue de l’améliorer, ce sera un bon jour comme langage de programmation général. À l'heure actuelle, c'est un très mauvais choix en tant que plate-forme de développement logiciel pour des projets volumineux ou complexes sur le plan logique.
J'écris dans LabVIEW depuis près de 20 ans maintenant. Je développe des systèmes de test automatisés. J'ai développé, RF, Vison, numérique haute vitesse et de nombreux types de systèmes de test à signaux mixtes. J'étais un programmeur "C" avant de passer à LabVIEW.
Il est vrai que vous pouvez créer rapidement des programmes dans LabVIEW, mais comme dans tout autre langage, il faut beaucoup de formation pour apprendre à construire une application volumineuse, facile à entretenir, avec du code réutilisable. En 20 ans, aucun bogue LabVIEW ne m'a empêché de terminer un projet.
De retour dans la journée, NIWEEK organisait une fusillade logicielle chaque année. Les programmeurs LabVIEW et LabWINDOWS (la version de "C" de NI) seraient tous deux confrontés au même problème et auraient une course pour voir quel groupe finissait le premier. Chaque année, tous les programmeurs de LabVIEW étaient terminés avant la première personne de LabWINDOW. J'ai mis au défi beaucoup de mes amis de la programmation textuelle passionnés et ils admettent tous qu'ils n'ont aucune chance, même si je les laisse définir le problème du logiciel.
Je pense donc que LabVIEW est un excellent outil de programmation. C’est vraiment la voie à suivre si vous vous connectez à n’importe quel type de matériel NI. Ce n’est pas la solution pour tout, mais je suis sûr que de nombreuses personnes ne l’utilisent pas simplement parce qu’ils ne considèrent pas LabVIEW comme un «vrai langage de programmation». Après tout, nous venons de câbler un tas de blocs ensemble, non? Je trouve ça drôle de voir combien de programmeurs basés sur du texte y adorent, car ils sont si fiers du fouillis de code texte qu’ils ont créé qu’ils ne peuvent comprendre. Un bon programmeur, quelle que soit sa langue, devrait écrire du code facilement lisible par d’autres. Écrire un code trop complexe et impossible à suivre ne fait pas du programmeur un génie. Cela signifie que le programmeur est un "compliateur" (quelqu'un qui peut prendre un problème simple et le compliquer). Je crois au principe KISS (KEEP IT SIMPLE STUPID).
En tout cas, mes deux cents valent la peine! **
Je pensais que LabVIEW était un rêve pour la programmation FPGA. Les blocs exécutables indépendants ne font que ... travailler. En général, j'utilise LabVIEW pour diverses tâches d'interfaçage avec mes matériels DAQ et FPGA, mais c'est à peu près tout. Il me semble (encore une fois) que c'est le point fort de LabVIEW et la raison pour laquelle il a été construit, mais en dehors de cet arène, cela semble "encombrant". Pour ce qui est de faire les choses, c'est comme n'importe quelle autre langue avec une courbe d'apprentissage - une fois que vous avez compris, ce n'est pas trop mal pour faire le travail. J'ai vu plusieurs personnes abandonner avant de penser que la courbe d'apprentissage était permanente ou quelque chose du genre.
Choisir un moniteur de 30 "a fait une énorme différence.
Je sais qu’une chose que les gens n’aiment pas, c’est l’intégration du contrôle de version.
Edit: LabVIEW/hardware est hella cher pour une utilisation "juste pour le plaisir". J'ai laissé tomber 10 000 dollars sur leur matériel (prix étudiant) et j'ai obtenu gratuitement le logiciel de l'école pour la fabrication de jouets à la maison.
Notre société utilise LabVIEW depuis 10 ans pour mesurer, surveiller et rendre compte de notre sujet (trains).
Nous avons récemment commencé à utiliser LabVIEW comme interface graphique pour des bases de données contenant beaucoup de données. La puissance de LabVIEW avec les nouvelles fonctionnalités récentes (Classes, XControls) permet de créer ce type d’interface graphique pour une fraction des coûts de développement d’autres plateformes. Bien que nous n’ayons pas besoin de programmeurs externes au taux de consultation.
Tonne
J'ai commencé à utiliser Labview dans un laboratoire de physique de collège. Au début, je pensais que c'était lent et lourd par rapport à d'autres langues basées sur du texte. Il était trop difficile de créer une logique complexe et le code devenait très rapide (fils partout).
Quelques années plus tard, j'ai appris à utiliser les sub-vi et les bundles. Quelle différence! À ce stade, j'utilisais labview pour des fonctions de très haut niveau. Je prenais des données brutes d'une caméra, en utilisant toutes sortes de filtres d'image et de traitement pour analyser les lignes d'une route afin qu'un véhicule puisse conduire dans cette rue sans conducteur - c'était pour le DARPA URBAN CHALLENGE. J'étais également en train de générer des cartes à partir de données de points de route en texte, de créer des fonctions d'analyse syntaxique de haut niveau et de nombreuses autres applications qui n'avaient rien à voir avec le traitement de données provenant de périphériques d'entrée. C'était vraiment très amusant. et vite.
Après avoir quitté le collège, je suis maintenant revenu à l’utilisation de langages à base de texte. Je me sers de: PHP, Javascript, VBA, C #, VBscript, VB.net, Matlab, Epson RC +, Codeigniter, diverses API et bien d'autres. Je suis souvent très frustré par la quantité de syntaxe que je dois mémoriser pour pouvoir programmer rapidement. Je trouve ennuyeux de devoir changer d’école de pensée en fonction du langage que j’utilise ... alors que tous les langages de programmation font essentiellement la même chose! J'ai besoin d'un deuxième moniteur juste pour avoir l'aide à tout moment afin que je puisse trouver la syntaxe pour les mêmes fonctions dans différentes langues. Labview me manque beaucoup, c'est dommage que ce soit si cher sinon je l'emploierais pour tout.
Je pense que la programmation graphique a un potentiel énorme. En ne vous contraignant pas à la syntaxe, vous pouvez vous concentrer sur la logique plutôt que sur le code. Labview lui-même en est peut-être encore à ses balbutiements en termes de support et de débogage, mais je pense que conceptuellement, il bat la concurrence. C'est simple, une façon plus intuitive de programmer.
Mais les gens utilisent LabView à des fins autres que l'acquisition de données et la virtualisation. Bien entendu, LabVIEW est principalement utilisé dans les laboratoires et les environnements de production car il est (ou était) l’une des principales cibles clientes de NI.
Cependant, vous pouvez faire beaucoup de choses différentes avec LabVIEW, comme programmer un robot qui effectuerait beaucoup d’analyses d’image, puis envoyer un tweet aux résultats. Regardez des vidéos de NI Week 2009 sur you-tube et vous verrez toute la puissance de cet outil. Par exemple, il est possible d'écrire du code et de le déployer sur des MCU ARM (voir cet article de Dev Monkey à partir du 2009.08.10).
Et enfin, vérifiez ceci Groupe LabVIEW DIY
Nous utilisons LabVIEW pour faire fonctionner nos équipements de test de fin de ligne, ce qui est idéal pour l’acquisition et le contrôle des données. Mesurant généralement entre 15 et 80 tensions différentielles et contrôlant les enceintes environnementales, les contrôleurs de débit massique et divers périphériques série, LabVIEW est plus que capable.
L'interfaçage avec des périphériques personnalisés peut être grandement simplifié en utilisant l'assistant de pilote d'instrument NI pour créer des VI réutilisables, en interfaçant avec des dll personnalisées si nécessaire. Sur un certain nombre de projets, nous avons créé de tels pilotes pour du matériel personnalisé et, une fois créés, ils sont réutilisables dans les projets futurs sans modification.
L'utilisation des structures événementielles est sensible aux interfaces utilisateur. Nous utilisons régulièrement les applications LabVIEW pour faire l'interface avec une base de données.
Quel que soit l'environnement de programmation que vous choisissez, c'est le processus de conception de l'application qui compte le plus. Je conviens que vous pouvez créer des diagrammes de blocs vraiment horribles et illisibles dans LabVIEW, mais vous pouvez également créer du code illisible dans Visual studio. Avec juste un peu de réflexion et de planification, vous pouvez adapter un diagramme LabVIEW à un seul moniteur 24 "avec suffisamment d'espace pour ajouter des commentaires.
J'utiliserais LabVIEW plutôt que Visual Studio pour la plupart des projets.
Je réfléchis à cette question depuis des décennies (oui, depuis 1989 ...)
Comme tous les langages de programmation, LabVIEW est un outil de haut niveau utilisé pour manipuler le flux d'électrons. À moins que vous ne soyez un puriste et que vous refusiez d'utiliser autre chose qu'une planche à pain et des fils; les transistors, les circuits intégrés et les langages de programmation sont probablement une bonne chose si vous souhaitez construire quelque chose d'important.
Mais comme tous les outils de haut niveau, le simple fait d’en user ne fait pas de vous un artisan professionnel. À l'époque des fers à souder, des amplificateurs opérationnels et des UART, il fallait beaucoup d'études approfondies avant de pouvoir créer un système qui fonctionnerait réellement. Le domaine moderne des langages textuels est tellement dominé par la syntaxe que le programmeur doit le comprendre juste avant de compiler et d’exécuter. Pour écrire du code qui fonctionne, le programmeur doit augmenter son niveau de compétence pour créer des systèmes beaucoup plus volumineux que "Hello World".
LabVIEW n'est pas dominé par la syntaxe, mais par le flux de données. De retour dans la journée, la recherche de votre modèle de diagramme de flux et l'élaboration du schéma d'un système d'information bien équilibré constituaient la partie artistique et la beauté du travail. Ce n’est qu’après que vous ayez l’organigramme révisé en main que vous envisagerez même de passer à travers les travaux fastidieux de la mise au point du code. (oui ... cartes perforées)
LabVIEW est un système de développement qui permet au programmeur d’utiliser des outils de graphique de flux pour illustrer l’ensemble du système d’information et cliquer sur "Exécuter" ..... LabVIEW "insère le code" et le compile pour vous. Pas besoin de se battre avec la syntaxe de la langue du texte A ou de la langue B.
Avec un outil aussi puissant, les novices peuvent créer rapidement de grands programmes de travail, ce qui implique un certain savoir-faire professionnel. Cependant, si le système ne fonctionne pas avec élégance ou si le diagramme de code source est un désordre, ce n'est pas la faute de LabVIEW.
Les gens soulignent souvent que "LabVIEW n’est utile que pour le développement de grands systèmes d’acquisition de données". Peut-être que ces personnes devraient considérer le professionnalisme des scientifiques et des ingénieurs qui travaillent dans l'acquisition de données. S'ils en savent suffisamment pour obtenir les bons câbles pour les capteurs et les transducteurs, il est fort à parier qu'ils sont également experts en développement de diagrammes de câblage LabVIEW.
J'utilise LabVIEW depuis environ deux ans pour développer l'automatisation. Si nous apportons le soin et la conception appropriés, nous pourrons certainement développer une application maintenable et vraiment superbe dans LabVIEW.Je pense que c'est la même chose pour toutes les autres langues. Dans LabVIEW, le code est tout aussi mauvais de la part de ceux qui l'utilisent uniquement pour développer une automatisation rapide et délicate. IMHO La programmation graphique est beaucoup plus facile à coder et à comprendre si elle est correctement effectuée. Mais cela dit, j’estime que la programmation textuelle «semble» plus puissante! LabVIEW est principalement destiné à l’automation industrielle, supporte de manière inhérente de nombreux matériels NI et vous pouvez faire en sorte que les matériels tiers fonctionnent assez rapidement. Je pense que c'est la raison pour laquelle vous ne le voyez que dans le domaine de l'automatisation. De plus, cela coûte assez cher et vous êtes bloqué avec NI car vous ne pouvez même pas ouvrir votre code si vous n’achetez pas le logiciel chez eux!
J'ai utilisé LabView pendant environ 10 ans. C'est brillant pour le prorgamming scientifique, comme Matlab ou Simulink, mais 10 fois mieux. Si vous rencontrez des problèmes, vous faites quelque chose de mal. Il faut du temps pour apprendre comme n'importe quelle langue. Quant à l’utilisation de .Net, ces personnes sont-elles même sur la même planète? Pourquoi voudriez-vous prendre la peine d'écrire tout à partir de zéro quand vous pouvez dire tirer une FFT, etc. et utiliser du code déjà écrit. .NET convient aux programmes simples mais ne convient pas au traitement scientifique. oui, vous pouvez le faire, mais non sans une myriade d’ajouts pour les graphismes, etc. Prorgamming en G est beaucoup plus facile que le texte basé sur des problèmes scientifiques. Vous pouvez bien sûr programmer en c si vous vous connectez et utilisez la dll. Maintenant, il y a des choses pour lesquelles je n'utiliserais pas LabView - la reconnaissance vocale, par exemple, peut être un peu compliquée à l'heure actuelle. Mais surtout, pourquoi les gens aiment-ils programmer avec un texte obsolète alors qu’il existe une alternative facile? C'est comme si les gens voulaient compliquer les choses de manière à justifier leur travail. Simplifier Simplifier!
Je fais utilise LabView à la maison , car il fait partie de Lego Mindstorms, que mon fils adore. Et j'aime beaucoup la façon de composer des systèmes comme celui-ci.
Cependant, dans mon travail (systèmes embarqués), il est généralement trop restrictif. Mais ici aussi, j'essaie de progresser dans l'abstraction: comportement du contrôle et de l'état -: conception basée sur un modèle (c'est-à-dire Rhapsody) - algorithmes de données, etc. Simulink
Parfois, un modèle graphique peut nécessiter plus de clics qu'un morceau de code. Mais cela inclut également le travail qu'un bon programmeur doit faire en conception et documentation; pas seulement la saisie de code. La notation graphique supprime de nombreux problèmes et est généralement beaucoup plus rapide si l'outil est suffisamment puissant pour la complexité du moment. Je m'attends donc à ce que ces types d'outils gagnent en popularité au cours des prochaines années, à mesure qu'ils mûrissent et que les gens se familiarisent avec eux.
Quelqu'un a dit que LabView n'est poursuivi que dans le domaine de l'automatisation. Tout simplement pas écrire du tout. Il a des applications dans le traitement du signal numérique, les systèmes de contrôle, les communications, le Web, les mathématiques, le traitement d'images, etc. Cela a commencé comme une méthode d’acquisition de données et ils ont inventé le nom d’Instrumentation Virtuelle, mais cela va bien au-delà. C'est un langage de programmation scientifique avec une interface graphique incomparable. Il va bien au-delà de Simulink et si vous aimez Matlab, il possède un type de script Matlab intégré pour ceux qui aiment ces méthodes de programmation. Il évolue tout le temps. La seule chose que j’ai trouvée difficile a été d’écrire du code pour le Compact Rio - un problème difficile à résoudre mais bien plus simple que l’alternative. C'est cher mais vous obtenez un produit de qualité. Personnellement, je n'ai pas trouvé de bugs dans la programmation ordinaire. C'est un langage d'ingénieur, mais n'importe qui peut l'utiliser pour programmer.