Quels langages utilisez-vous pour le développement de systèmes embarqués en 2019 ?
Quels langages utilisez-vous pour le développement embarqué ? Lors de notre dernier sondage, les langages les plus cités par les développeurs et IT pro de la communauté Developpez.com étaient d'abord C(47,14 %), C++(30,71 %), Assembleur (20,71 %) et Java (10 %). Python était au coude à coude avec .NET pour la 5e place, tous les deux ayant été votés par 7,14 % des répondants.
Arduino, le langage natif pour le microcontrôleur appelé du même nom n'est venu qu’à la 7e place avec 4,55 %, en dépit du fait que la carte Arduino est aujourd’hui la base d'un grand nombre de dispositifs de fabrication et de prototypage. Cela peut s’expliquer par le fait que le développement de systèmes embarqués Arduino n’est pas une exclusivité du langage natif de la plateforme. Il est en effet possible de programmer la carte Arduino en C/C++. Et vous le faites d'ailleurs déjà dès que vous utilisez le langage Arduino, puisqu'il est simplement un ensemble de fonctions C/C++ qui peuvent être appelées à partir de votre code. Votre sketch (nom donné aux programmes écrits pour Arduino) subit des modifications mineures (par exemple, génération automatique de prototypes de fonctions), puis est transmis directement à un compilateur C/C ++ (avr-g ++).
Pour les programmeurs confirmés, le langage C/C++ qui est traditionnellement utilisé pour programmer les microcontrôleurs peut être la solution la plus performante pour programmer une carte Arduino. Cela dit, on peut également vouloir utiliser un langage de programmation qu'on maitrise déjà pour ne pas avoir à apprendre un nouveau langage pour programmer la carte Arduino.
Si vous ne pouvez pas écrire du C/C++, il est possible d’utiliser un langage interprété soit directement sur la carte, soit sur un autre ordinateur qui communique avec Arduino. Il existe en effet quelques implémentations de langages interprétés pour l'Arduino, y compris plusieurs ports de Forth sur Arduino, un port de Tiny BASIC, PyMite (un sous-ensemble de Python), et un langage dédié appelé Bitlash. Ces langages peuvent être exécutés directement sur Arduino. Tout cela peut expliquer pourquoi le langage Arduino arrive à cette position dans le classement des langages les plus utilisés pour le développement de systèmes embarqués.
Sondage réalisé en 2017
Notre dernier sondage date toutefois de 2017, et en deux ans, beaucoup de choses peuvent se passer dans le monde de l'informatique, y compris dans celui de la programmation de systèmes embarqués. Par exemple, la plupart des langages de script dynamiques modernes ont la réputation d'être trop complexes pour tenir dans la RAM et la mémoire des programmes très limitées d'un microcontrôleur. Les langages qui entrent dans cette catégorie sont : Java, PHP, Perl, Batch, Shell, Ruby, JavaScript, TCL, Python. Mais aujourd'hui, la puissance de calcul des microcontrôleurs a fortement augmenté, ce qui permet par exemple à des versions embarquées de Python, telles que CircuitPython et MicroPython, de devenir de plus en plus populaires parmi ceux qui font du développement embarqué.
Il y a donc des changements qui s'opèrent actuellement dans les choix de langages pour la programmation de microcontrôleurs. Les deux derniers classements annuels de l'IEEE montrent par exemple que Python est le langage numéro un pour le développement de systèmes embarqués, alors qu'il n'était pas parmi les candidats juste un an plus tôt.
IEEE : Top 10 des langages les plus populaires pour le développement de systèmes embarqués
En France, qu'en est-il exactement ? La réalité est-elle la même que celle donnée par le classement de l'IEEE ? Ou le trio leader de 2017 (C, C++ et Assembleur) reste inchangé ? C'est ce que nous voulons savoir à travers vos votes. Quels langages utilisez-vous pour le développement de systèmes embarqués en 2019 ? Les langages à usage général comme C, C++, Python, Java, etc. ou les langages plus spécialisés, comme :
- Arduino : le langage natif pour le microcontrôleur Arduino ;
- LabView : créé par National Instruments pour l'acquisition de données et le contrôle industriel ;
- VHSIC Hardware Description Language (VHDL) : un langage de description matériel utilisé dans la création et l'analyse de circuits électroniques ;
- Ladder Logic : un langage de programmation destiné au développement de contrôleurs logiques programmables industriels ;
- Erlang : langage créé par Ericsson pour les applications de téléphonie embarquées ;
- Verilog : un langage de description matériel utilisé dans la création et l'analyse de circuits électroniques ;
- Ada : à l'origine conçu pour le département de défense des États-Unis, il est utilisé pour des applications où la fiabilité est critique, comme les systèmes de contrôle aérospatial ;
- TCL : un langage de script destiné au prototypage rapide et supportant l'interface utilisateur graphique Tk utilisée principalement avec les systèmes Unix ;
- Forth : conçu à l'origine pour contrôler les radiotélescopes, il est toujours utilisé pour des applications telles que les boot loaders et d'autres firmwares ;
- Scade : un langage pour l'embarqué critique. C'est le langage de modélisation de SCADE Suite, un environnement de développement intégré pour la conception de systèmes critiques.
Et vous ?
Quels langages utilisez-vous pour le développement embarqué ? Pourquoi ?
Lesquels préférez-vous ? Et dans quels domaines ?
Voir aussi :
Forum Systèmes embarqués
Rubrique Systèmes embarqués
Quels langages utilisez-vous pour le développement de systèmes embarqués en 2017 ?
Quels langages de programmation utilisez-vous pour Arduino ? Partagez votre expérience
Partager