Quels langages utilisez-vous pour le développement de systèmes embarqués ?

Le , par Michael Guilloux, Chroniqueur Actualités
Quels langages utilisez-vous pour le développement de systèmes embarqués ?
Quels langages utilisez-vous pour le développement embarqué ? Dans un sondage à choix multiples similaire lancé il y a quelques années, le langage C s’est avéré le plus utilisé par les répondants, avec plus de 60 %, suivi par le C++ avec 29,41 %. Le top 5 a été complété par le langage Assembleur (20,59 %), Ada (17,65 %) et .Net (11,76 %).


Sondage Developpez.com (2013) : Quel langage utilisez-vous pour le développement embarqué ?

Il faut noter que plusieurs langages de programmation se veulent dédiés à l’embarqué. Parmi ces langages se trouvent Ada et le langage assembleur, ce dernier restant encore un choix approprié pour les systèmes soumis à des contraintes sévères de temps réel. Des langages proches de la machine comme le C et dans une moindre mesure le C++ sont aussi utilisés ; ce qui justifie leur position dans le dernier sondage.

C et C++ confortent également leur place respective dans le dernier classement de l’IEEE des meilleurs langages pour les systèmes embarqués. On voit aussi d’autres langages tels que Arduino, Haskell, D, LabVIEW et VHDL qui sont bien classés.


IEEE 2016 : meilleurs langages pour le développement de systèmes embarqués

En dehors de certains langages populaires (à usage général) qui reviennent dans les deux classements, il peut être important de donner quelques précisions sur les différents langages :

  • Arduino : il s'agit du langage natif pour le microcontrôleur Arduino, qui est devenu la base d'un grand nombre de dispositifs de fabrication et de prototypage ;
  • LabView : créé par National Instruments, LabView est conçu pour l'acquisition de données et le contrôle industriel ;
  • VHDL : VHSIC Hardware Description Language (VHDL) est un langage de description matériel utilisé dans la création et l'analyse de circuits électroniques ;
  • Ladder Logic : il s'agit d'un langage de programmation destiné au développement de contrôleurs logiques programmables industriels ;
  • Erlang : créé par Ericsson pour les applications de téléphonie embarquées, la publication d'Erlang en tant que langage open source en 1998 a renforcé sa popularité parmi les programmeurs qui développent des applications qui doivent gérer de nombreuses tâches simultanées ;
  • Verilog : comme VHDL, Verilog (ou Verilog HDL) est 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, Ada est utilisé pour des applications où la fiabilité est critique, comme les systèmes de contrôle aérospatial ;
  • TCL : il s'agit d'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, Forth est toujours utilisé pour des applications telles que les boot loaders et d'autres firmwares ;
  • Scade : il s'agit d'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


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de RyzenOC RyzenOC - Membre éclairé https://www.developpez.com
le 29/06/2017 à 10:06
autre :
J'utilise Python et Go, (on peut produire des exécutables autonome en python et en go, pas besoin de se trimbaler l’interpréteur python au complet, j'arrive à produire des programmes < 10mo consommant 5.18 mo de ram)

Pour moi python à parfaitement sa place dans ce classement, je suis assez surpris de pas le voir.
Avatar de Steinvikel Steinvikel - Membre régulier https://www.developpez.com
le 29/06/2017 à 10:08
N'est-il pas surprenant que python ne soit pas représenté ?
Je me pose la question au vu des nombreuse carte grand publique de prototypage arduino, raspberryPy... où python permet de faire simplement et rapidement qqch de "fonctionnel" avec peu de connaissances.
Avatar de FABSGC FABSGC - Nouveau Candidat au Club https://www.developpez.com
le 29/06/2017 à 10:11
Personnellement, j'ai recours au C et au C++ en développement embarqué
Avatar de hotcryx hotcryx - Membre émérite https://www.developpez.com
le 29/06/2017 à 10:16
Citation Envoyé par RyzenOC Voir le message
autre :
J'utilise Python et Go, (on peut produire des exécutables autonome en python et en go, pas besoin de se trimbaler l’interpréteur python au complet, j'arrive à produire des programmes < 10mo consommant 5.18 mo de ram)

Pour moi python à parfaitement sa place dans ce classement, je suis assez surpris de pas le voir.
Des exécutables??

Perso, j'utilise Java pour Android.
Avatar de Ashkandie Ashkandie - Nouveau membre du Club https://www.developpez.com
le 29/06/2017 à 10:37
Il faut voir ce que l'on appel embarqué, pour avoir travaillé pendant quelques années sur des systèmes embarqués, on codait uniquement en C ou en Assembleur. Les ressources mémoires étaient ridicules (de l'ordre de quelques Ko), et la fréquence mémoire très faible (quelques Mhz) donc de base tout ce qui est interprété on oublie. Si maintenant les RPi et autres cartes du même genre entrent dans la catégorie de l'embarqué, vu le proc et la mémoire dont on dispose, on peut faire comme bon nous semble.
Avatar de RyzenOC RyzenOC - Membre éclairé https://www.developpez.com
le 29/06/2017 à 10:46
Citation Envoyé par hotcryx Voir le message
Des exécutables??

Perso, j'utilise Java pour Android.
oui, avec PyInstaller tu peut avoir un elf avec ces lib .so et .a dans le même dossier (même chose sous Windows, .exe avec ces dll)

les matos embarqué que j'ai développé c'est un mini ordinateur monocoeur arm avec 64mo de ram sous une version custom de linux à base de busybox.
je code pas sur la machine à lavé avec 3ko de ram.
Avatar de AoCannaille AoCannaille - Membre chevronné https://www.developpez.com
le 29/06/2017 à 11:33
Citation Envoyé par Ashkandie Voir le message
Il faut voir ce que l'on appel embarqué, pour avoir travaillé pendant quelques années sur des systèmes embarqués, on codait uniquement en C ou en Assembleur. Les ressources mémoires étaient ridicules (de l'ordre de quelques Ko), et la fréquence mémoire très faible (quelques Mhz) donc de base tout ce qui est interprété on oublie. Si maintenant les RPi et autres cartes du même genre entrent dans la catégorie de l'embarqué, vu le proc et la mémoire dont on dispose, on peut faire comme bon nous semble.
Carrément, RPi est un nano ordinateur, pas une carte embarquée!

D'ailleurs, pour moi, ma définition de l'embarqué, c'est une carte sans OS. Quand on voit qu'un RPi peut faire tourner un OS desktop, même pas orienté léger ou temps réèl, on est très loin de l'embarqué...

Pareil pour les smartphones...
Avatar de hotcryx hotcryx - Membre émérite https://www.developpez.com
le 29/06/2017 à 12:32
Citation Envoyé par RyzenOC Voir le message
oui, avec PyInstaller tu peut avoir un elf avec ces lib .so et .a dans le même dossier (même chose sous Windows, .exe avec ces dll)

les matos embarqué que j'ai développé c'est un mini ordinateur monocoeur arm avec 64mo de ram sous une version custom de linux à base de busybox.
je code pas sur la machine à lavé avec 3ko de ram.
Ok intéressant, je ne connaissais pas
J'ai trouvé ceci

https://www.busybox.net/live_bbox/live_bbox.html
Avatar de kilroyFR kilroyFR - Membre confirmé https://www.developpez.com
le 29/06/2017 à 13:08
C/C++ et C# sous WinCE2013 (mais IHM seulement en C#, pour tout le reste, comm etc. c'est avec des libs (type libcurl etc) en C car sinon les perfs sont catastrophiques et surtout ca nous permet d'eviter au maximum les pbs de ce p*tain de garbage collector en C# (pour moi la pire des inventions car pour supprimer la rigueur dans le developpement on doit maintenant gerer ceci et eviter que l'equipement ne decharge au mauvais moment).

sinon android pour applis smartphone.
Avatar de RyzenOC RyzenOC - Membre éclairé https://www.developpez.com
le 29/06/2017 à 13:13
Citation Envoyé par hotcryx Voir le message
Ok intéressant, je ne connaissais pas
J'ai trouvé ceci

https://www.busybox.net/live_bbox/live_bbox.html
ben c'est busybox linux qui tient sur quelques mo.
Contacter le responsable de la rubrique Accueil