Cet article est détaillé dans le Chapitre 7 de la prochaine version du livre
"LabVIEW programmation et application - Introduction à LabVIEW NXG" - 4ème édition
du 22/08/2018, aux éditions DUNOD - 560 pages - EAN13 : 978-210078283 Lien livre LabVIEW sur le site Amazon. Description détaillée du livre ici
7.1.1 - L’annonce de la Nouvelle génération en 2017
Chaque année, la société National Instruments organise sa grande manifestation « NIWeek » au Texas. NIWeek consiste en un grand show d’une semaine pendant lequel alternent, autour d’une salle d’exposition, des conférences de presse (« keynotes ») et des conférences techniques. Des experts reconnus y présentent en détails les produits matériels et logiciels de l’entreprise. Lors de la conférence d’ouverture de la manifestation, National Instruments annonce ses grandes nouveautés. Pour les ingénieurs et scientifiques qui utilisent des systèmes de test automatisé, c’est un peu Noël avant l’heure, c’est l’évènement de l’année à ne pas manquer.
Lors de la NIWeek 2017, National Instruments a dévoilé une très grande nouveauté, que la société préparait depuis quelques années. En effet, alors que nous étions habitués depuis 2009 à avoir une version de LabVIEW par millésime, National Instruments a présenté deux nouvelles versions : LabVIEW 2017, la version « Standard », et LabVIEW NXG 1.0, la « Nouvelle génération » (NeXt Generation).
LabVIEW 2017 est l’évolution annuelle de LabVIEW. C’est la version « Standard » (figure 7.1). L’environnement de développement est totalement dans la continuité de son prédécesseur LabVIEW 2016, ou que de son successeur LabVIEW 2018. En tant de développeur professionnel, mon avis est qu’elle n’apporte pas d’améliorations majeures. Je découvre quelques nouvelles fonctionnalités, certaines très intéressantes, mais que je qualifierais « de petites améliorations ». Les versions suivantes du LabVIEW millésimé resteront dans cette branche logicielle dite « standard ».
LabVIEW 2017
Figure 7.1 – LabVIEW 2017 est l’évolution annuelle de LabVIEW. C’est la version « Standard ».
LabVIEW NXG est la nouvelle génération du logiciel LabVIEW. Il n’est plus question d’évolutions mais de révolution (figure 7.2). Fruit de plusieurs années de recherche et développement, cette première version de NXG est bien le lancement de la nouvelle génération de LabVIEW. Au fil des années, elle doit devenir une « Better LabVIEW », une version plus crédible, plus ergonomique et plus performante de LabVIEW.
Pour des raisons évidentes le nom LabVIEW a été conservé. Mais ne nous y trompons pas, nous sommes bien sur deux versions indépendantes et incompatibles de l’environnement de développement. Le code de la version « standard » doit être migré, via un utilitaire, pour être utilisé sur la version « NXG ». Suite à cette conversion un « VI » devient un « GVI ». Par contre, il est impossible de faire le chemin inverse. Il n’est pas possible de convertir un code compilé dans l’environnement « NXG » vers la version « Standard ».
LabVIEW NXG Panneau de mesureLabVIEW NXG exemples
Figure 7.2 – LabVIEW NXG est la nouvelle génération du logiciel LabVIEW.
7.1.2 L’anecdote historique, par les yeux du professionnel
NXG est né de la volonté d’un retour aux idées d’origine de la création de LabVIEW. Les idées « encore à implanter » que décrient Jeff KODOSKY dans la préface du livre, « revenir en mode invention, avec la possibilité d’aboutir à une réalisation aussi innovante que l’était LabVIEW 1 ».
Au détour de petites confidences faites par des membres de National Instruments, nous trouvons trace de l’idée de faire une « Better LabVIEW » ou nouvelle génération de LabVIEW au début des années 2000. Dans les années 2010, le programme prend de l’ampleur pour accélérer en 2014 avec les premières présentations à un cercle restreint de partenaires.
C’est un avis qui n’engage que moi (Luc DESRUELLE), mais je mets en parallèle l’effort énorme de NI pour développer cette version qui doit révolutionner « LabVIEW », et le sentiment que la version « standard » n’a plus d’ajout de fonctionnalités majeures depuis 2014.
Dès 2015, en tant que « Certifié Architect LabVIEW », j’ai eu le privilège de participer aux tests de la version « préliminaire » de NXG. Avec d’autres confrères, j’ai ainsi intégré le programme « Platform Developper Preview (PDP) ». La finalité de ce programme était d’ouvrir les tests de la version « Alpha » à des développeurs extérieurs à la société National Instruments. Je me souviens notamment avoir été sollicité, avec mon ami Olivier JOURDAN (LabVIEW Champion), pour la nouvelle traduction en français de « front-panel ». En effet par référence à la face-avant d’un instrument physique, la version « standard » utilise le terme anglais « front-panel » pour désigner l’interface utilisateur du programme, qui est un « Instrument Virtuel » en LabVIEW. La nouvelle version anglaise de NXG utilise le terme « Panel », dans l’objectif d’éloigner LabVIEW du lien trop étroit avec l’instrumentation physique et d’affirmer le code G en tant que langage de programmation plus général. Dans la version française fallait-il utiliser Panneau ? Face ? Panel ? UI ? Après de longues conversations, à peser les mots et leurs conséquences, la « face-avant » va devenir « Interface » (figure 7.3). C’est l’interface visuelle du programme, dans l’éditeur c’est l’interface entre le code et le développeur. Participer à cette aventure, même modestement, voire comment était géré un nouveau logiciel prochainement utilisé par des milliers d’utilisateurs dans le monde, a été un réel plaisir et une expérience enrichissante.
Peu à peu le programme de test de la version « Beta » a été ouvert à un public élargi au travers du « Software Technologie Preview ». Fin 2016, National Instruments a subtilement orchestré les fuites d’une nouvelle génération de logiciel. Des fonctionnalités très attendues par les développeurs ont été annoncées « En développement » sur le forum « LabVIEW idea exchange », l’espace de discussion des suggestions d’évolutions.
La nouvelle génération NXG version 1.0 a été officiellement annoncée le 23 mai 2017 lors du salon NIWeek. Cette première version ne présentait pas encore toutes les fonctionnalités de LabVIEW Standard, loin de là. Sous le slogan « Aussi productif que LabVIEW, la programmation en option », elle focalise l’attention sur le premier pilier de cette version qui est une nouvelle approche de l’automatisation des mesures, dans un seul logiciel et sans programmation. Cette première version est incomplète. Elle ne possède pas l’ensemble des fonctionnalités nécessaires à la programmation, ni l’ensemble du support matériel. Elle n’est qu’une première étape. Avec cette version incomplète, le public interprète parfois, et à tort, que cette version est juste un nouvel outil pour faciliter l’acquisition de données.
En 2018, elle sera suivie par la version NXG 2.0 et vraisemblablement par une autre version (dévoilée) lors de NIWeek 2018. Cette deuxième version amène véritablement les outils de développement nécessaires à la programmation en code G. C’est le deuxième pilier de la révolution. De nouvelles fonctionnalités sont dévoilées, comme les WebVIs. Cette révolution est tellement ambitieuse, qu’elle se déroule par étapes successives. Il faudra attendre 2019 pour avoir une grande partie des concepts et toolkits équivalents à la version standard, dans cet environnement innovant, modernisé et résolument tourné vers le futur de LabVIEW.
A l’heure où j’écris ces lignes, il est toujours possible de s’inscrire au programme « Aperçu Technologie des logiciels de NI » pour obtenir et tester la version « Béta » la plus récente du logiciel LabVIEW NXG. Il est ainsi possible de faire des commentaires et proposer des idées qui auront un impact direct sur le développement du logiciel.
Et vous, êtes-vous prêt pour cette révolution ?
La peur de ne pas retrouver l’outil de ses rêves.
En 2015 lors d’une avant-première de la version Alpha de NXG, dans une salle feutrée au public confidentiel, ma première pensée aura été la peur. Cela peut sembler exagéré. Mais lorsque nous maitrisons un outil, que nous l’utilisons au quotidien, que nous prenons beaucoup de plaisir à l’utiliser, c’est bien la peur du changement qui est le premier sentiment qui me vient. La peur de ne plus retrouver ses habitudes. La peur de ne pas retrouver l’outil de ses rêves. Mais il faut accepter le changement. Sortir de sa zone de confort. A l’identique de la théorie de l’évolution de Charles Darwin, « Dans la lutte pour la survie, les espèces les plus fortes sont celles qui s’adaptent le mieux au changement de leur environnement ». Il est vrai que pour survire il faut s’adapter, évoluer pour s’améliorer. Cela est également vrai dans le monde du logiciel.
7.1.3 Ce qui n’a pas changé : LabVIEW reste LabVIEW
« Vous avez aimé LabVIEW, vous aimerez LabVIEW nouvelle génération », sont les premiers mots que les ingénieurs de National Instruments prononcent lorsqu’ils dévoilent le nouvel environnement. Cette promesse doit nous rassurer. C’est évidemment un des premiers piliers du cahier des charges de NXG. Avant de décrire en détail ce qui a changé avec LabVIEW NXG, commençons ce chapitre par ce qui n’a pas changé.
Pour faire un petit rappel théorique du chapitre 1 sur « les concepts et l’environnement de programmation », LabVIEW propose un cadre de programmation graphique, basé sur le principe de « flux de données » et enrichi des deux extensions « mémorisations » et « structures de programmation ». Ce langage de programmation est appelé « langage G » ou « code G ». L’intérêt premier de la programmation graphique est que le code est représenté par un « schéma », par opposition aux « mots » du langage textuel. Le code obtenu est ainsi plus intuitif et naturel. Comme il a été également détaillé dans le chapitre 3, LabVIEW est un langage compilé. La compilation signifie que le code G est traduit en code machine, et qu’il est exécuté directement par l’ordinateur. Ce processus travaille pour nous en optimisant fortement le code pour améliorer la gestion mémoire et les performances d’exécution (cf §3.1.2).
L’environnement de développement LabVIEW permet de manipuler une grande variété de concepts, tel que :
- Les terminaux, représentent la production et consommation de données ;
- Les nœuds, traitement à effectuer qui sont représentés par une figure, et possèdent des connexions d’entrée et de sortie ;
- Les fils de liaison, relient nœuds et terminaux, ils permettent le passage des données ;
- Le flux de données, propagation des données, par les fils de liaison entre les terminaux et les nœuds. Un nœud ne s’exécute que si l’ensemble des données d’entrées sont disponibles ;
- La mémorisation des données, pouvoir réutiliser des données produites ;
- Les structures de programmation, gérer des choix et des itérations ;
- La programmation objet, la gestion évènementielle, l’encapsulation, le typage de données, etc.
La nouvelle génération NXG reste LabVIEW (voir figures 7.3 et 7.4). Un environnement de développement, orienté test et mesure, qui permet de programmer en code G dans un diagramme. Le code graphique reste. L’ensemble des concepts qui en font la puissance reste inchangé. Les terminaux, les nœuds, les structures, la propagation du flux de données sont présents (ou seront présents dans les versions prochaines). Les bibliothèques d’intégration du matériel d’acquisition (DAQmx) et des instruments (VISA, IVI) restent. Les outils sont toujours disponibles au-travers d’une palette. Le principe et la philosophie de la programmation en code G restent inchangés. Un point également très important à retenir, le compilateur est le même (cf §3.1.2).
LabVIEW NXG reste LabVIEW Figure 7.3 – LabVIEW NXG reste LabVIEW
Le même code en LabVIEW Standard et NXG
Figure 7.4 – Le même code en LabVIEW Standard et NXG.
LabVIEW reste le même LabVIEW que celui que nous aimons. Lorsque j’entends cette nouvelle et je l’écris avec beaucoup d’humour, et en tant qu’auteur du livre je pousse un soulagement. Je n’ai pas besoin de réécrire l’ensemble du livre.
- En effet le chapitre 1 qui décrit les concepts et l’intérêt de la programmation graphique, qui permet de représenter du code par un schéma, reste inchangé.
- De même le chapitre 3 qui décrit les « bonnes règles » de développement afin que le code soit maintenable, évolutif, performant et compréhensible par d’autres concepteurs d’applications est toujours valable.
- Pour les chapitres 4 et 5, là encore, les principes et structures pour acquérir, analyser et présenter les données par programmation sont toujours vrais.
Sur le fond, les compétences que doit avoir « un bon programmeur G » s'appliquent toujours. Pour aller dans ce sens les certifications délivrées par National Instruments et qui ont été obtenues avec la version standard de LabVIEW sont toujours valables : certifications développeur « CLAD » & « CLD » et certification architecte « CLA ». Les fondements de LabVIEW sont inchangés. Un LabVIEW Champion est toujours compétent sous NXG. Ce qu’un développeur peut faire dans LabVIEW 2018, il sera capable de le faire dans LabVIEW NXG, dans quelques années lorsque cette version aura toutes les fonctionnalités.
Sur la forme, l’éditeur de l’environnement NXG a évolué pour être plus intuitif et s’éloigner du concept de l’instrument physique. De nouveaux concepts apparaissent, comme des interfaces interactives pour réaliser des mesures sans programmation. Le développeur devra donc changer quelques habitudes. Le chapitre 2 qui présente les éléments de base de la programmation LabVIEW, ainsi que la démarche à suivre pour l’élaboration d’un programme dans l’environnement « Standard » vont donc être repris dans ce chapitre, avec la version NXG.
Bousculer les habitudes, pour apporter une amélioration
Dans le domaine du test et de la mesure, la plate-forme de développement LabVIEW est le logiciel de référence. « Bousculer » les habitudes des utilisateurs est un exercice qui peut s’avérer parfois périlleux. National Instruments prend des risques avec cette version. Tout en gardant la philosophie et les principes du succès de LabVIEW « Standard », la nouvelle version a l’ambition de révolutionner deux concepts :
- Pour les non développeurs, permettre de réaliser simplement des mesures sans faire de code ;
- Pour les développeurs, moderniser l’environnement de développement et ajouter des nouvelles fonctionnalités très attendues.