IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Quels langages utilisez-vous pour le développement de systèmes embarqués en 2019 ?

Votants
228. Vous ne pouvez pas participer à ce sondage.
  • Python

    37 16,23%
  • C

    126 55,26%
  • Java

    17 7,46%
  • C++

    87 38,16%
  • C# (.NET)

    24 10,53%
  • Arduino

    39 17,11%
  • Assembleur

    16 7,02%
  • Rust

    4 1,75%
  • LabView

    0 0%
  • VHDL

    5 2,19%
  • Verilog

    1 0,44%
  • TCL

    4 1,75%
  • Ada

    0 0%
  • D

    0 0%
  • Erlang

    0 0%
  • Forth

    5 2,19%
  • Ladder Logic

    9 3,95%
  • Scade

    8 3,51%
  • Haskell

    0 0%
  • Autre (à préciser dans les commentaires)

    3 1,32%
Sondage à choix multiple
Embarqué Discussion :

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


Sujet :

Embarqué

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 954
    Points : 88 507
    Points
    88 507
    Billets dans le blog
    2
    Par défaut Quels langages utilisez-vous pour le développement de systèmes embarqués en 2019 ?
    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

  2. #2
    Expert éminent Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 167
    Points : 6 100
    Points
    6 100
    Par défaut
    Selon le cas (et le matériel) : C/C++, Python et CodeTyphon (Pascal Objet) sur les plateformes Arm-Linux

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 890
    Points : 58 575
    Points
    58 575
    Billets dans le blog
    46
    Par défaut
    Dans l'étude IEEE d'il y a deux ans, Python n'apparaissait même pas dans le top 14

    En deux ans seulement, ce serait micropython/circuitPython sur des micros 32 bits (les ESP32/8266) qui aurait raflé la mise sur tout un pan de secteur embarqué ?!!! Dingue...

  4. #4
    Membre régulier Avatar de sitexw
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 117
    Points
    117
    Par défaut
    Perso, Javascript sur l'ESP32/ESP8266/ESP01. Je suppose que c'est loin d'être la solution la plus performante, mais bon, pour allumer des lumières, activer des PINs, faire un mini serveur web ou encore faire des requêtes HTTP... Ça fait largement le job.

    Voilà les trucs type que je réalise (exclusivement du Javascript et Node.js) :
    - Détecteur de fuite d'eau, relié à IFTTT pour les alertes
    - Sonde de température, relié a Zapier pour insérer ça dans un Sheet
    - Détecteur d'ouverture de portail (Zapier + Google Sheet)
    - Allumer des bandeaux de led (IFTTT)
    - Je travaille aussi sur un traceur GPS avec transmission de la localisation par GSM

    Évidemment, si tous ça est réalisable en JS, on peut aussi le faire en MicroPython, Arduino, ...

  5. #5
    Inactif  
    Profil pro
    undef
    Inscrit en
    Février 2013
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : undef

    Informations forums :
    Inscription : Février 2013
    Messages : 1 001
    Points : 3 671
    Points
    3 671
    Par défaut
    Citation Envoyé par f-leb Voir le message
    Dans l'étude IEEE d'il y a deux ans, Python n'apparaissait même pas dans le top 14

    En deux ans seulement, ce serait micropython/circuitPython sur des micros 32 bits (les ESP32/8266) qui aurait raflé la mise sur tout un pan de secteur embarqué ?!!! Dingue...
    Il y a des calculatrices graphiques qui utilisent python comme langage de programmation. Ça et les universitaires qui ne jurent que par ce langage, ça aide à se construire une clientèle.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2014
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Août 2014
    Messages : 476
    Points : 1 044
    Points
    1 044
    Par défaut
    C/C++ principalement.
    On a essayé .net mais on est vite revenu en arriere, un garbage collector qui fait du menage a un moment ou il faut pas; du code compilé just in time etait devenu impossible. On a donc laissé tombé. En C/C++ on maitrise vraiment tout et on ne passe pas notre temps a essayer de contourner le fonctionnement du framework .net sur certains points.

  7. #7
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Points : 646
    Points
    646
    Par défaut
    OK, Arduino c'est pas un langage mais un framework C++, quand je vois des cours décrivant la syntaxe ou le manuel de référence il n'y a pas de doute.
    Donc on pourrait ajouter ce groupe au C/C++.

    Sinon de mon côté pour du RAD/tooling j'envisagerais sérieusement le uPython, pour les Soc comme l'ESP, ou les MCU de ST ça doit bien faire l'affaire.

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 616
    Points : 19 855
    Points
    19 855
    Par défaut
    Salut à tous.

    J'avais supposé que le langage est au plus près de la machine comme l'assembleur.
    Surtout pas un langage interprété comme python.

    Un microcontrôleur ne disposant pas énormément de mémoire, il est normal d'économiser les lignes d'instructions.
    Donc les langages un peu trop bavards sont à prescrire.

    Du coup, il ne reste plus grand chose comme langage sur des systèmes embarqués.
    Je suppose que la question de ce sondage est plus tournée vers ce que l'on aime faire et non les bonnes pratiques.

    Cordialement.
    Artemus24.
    @+

Discussions similaires

  1. Réponses: 45
    Dernier message: 19/09/2023, 04h00
  2. Quel EDI utilisez-vous pour vos développements Android en 2015 ?
    Par Hinault Romaric dans le forum Android
    Réponses: 17
    Dernier message: 31/08/2015, 18h10
  3. Quel EDI utilisez-vous pour vos développements Android ?
    Par Hinault Romaric dans le forum Android
    Réponses: 29
    Dernier message: 03/03/2015, 16h41
  4. Quel EDI utilisez-vous pour le développement avec .NET ?
    Par Jérôme Lambert dans le forum EDI/Outils
    Réponses: 31
    Dernier message: 28/06/2011, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo