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

  1. #1
    Expert éminent sénior
    Quel est le meilleur langage pour le développement embarqué 2013 ?
    Bonjour,

    Chers membres du club et développeurs Embarqués,

    Nous aimerions lancer un sondage afin de savoir quel est le langage embarqué préféré des développeurs présents sur le forum. Il s'agit bien sûr de mentionner quels sont les langages que vous utilisez le plus.

    Si vous en avez essayé plusieurs, où se situe votre préférence et pourquoi ?
    Lequel trouvez-vous le plus didactique ?
    Avec lequel vous avez fait vos premiers pas dans ce domaine ?
    Lequel voyez-vous évoluer plus pour devenir le plus utilisé ? - Selon vous, quel langage doit encore évoluer pour rendre son utilisation plus courante ?

    Ce sondage doit être l'occasion de nous raconter vos expériences avec ces langages que vous aimez et que vous devez utiliser pour le développement embarqué.

    N'hésitez pas à préciser quels sont les environnements de vos projets : OS riches ou pas, temps réels, compilateurs, etc.

    N'hésitez pas à parler d'autres langages qui ne soient pas présents dans la liste.

    Si vous utilisez un langage qui n'est pas répertorié manifestez-vous et exprimez-vous sur celui-ci.

    Merci

  2. #2
    Modérateur

    Chaque langage a ses avantages et ses inconvenients... Ada apporte de fortes verifications, la ou le C permet au contraire de faire n'importe quoi (y compris de tres bonnes choses).
    Et a l'inverse, le cote bas-niveau du C peut devenir tres interessant si on s'interesse aux couches basses (paquets reseau par exemple).

    De meme, si on fait un jeu, le cote bas-niveau du C et son absence de lib graphique sera surement plus penalisant que l'utilasation d'un langage comme Java...

    Mais pour ce que je fais, le C est probablement l'un des plus adapte -- et il existe un compilateur C sur presque toutes les architectures.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3

  4. #4
    Rédacteur

    Citation Envoyé par gangsoleil Voir le message
    Chaque langage a ses avantages et ses inconvenients... Ada apporte de fortes verifications, la ou le C permet au contraire de faire n'importe quoi (y compris de tres bonnes choses).
    Et a l'inverse, le cote bas-niveau du C peut devenir tres interessant si on s'interesse aux couches basses (paquets reseau par exemple).

    De même, si on fait un jeu, le cote bas-niveau du C et son absence de lib graphique sera surement plus pénalisant que l'utilasation d'un langage comme Java...

    Mais pour ce que je fais, le C est probablement l'un des plus adapte -- et il existe un compilateur C sur presque toutes les architectures.
    Réponse pleine de bonne chose.

    Ca va déjà dépendre de la définition d’embarqué qu'on sens.
    Embarqué = Pas PC fixe ? Contrainte taille mémoire ? Securite ?

    Pour certain, un téléphone Android cest de l'embarque, pour moi c'est plus un PC amoindri.

    Dans ma vision de l'embarqué (système temps reel critique qui doivent tenir entre 10 et 30 ans dans des environnement hostiles), on a le C et C++ (souvent un peu amoindri*) car beaucoup de plateformes les supportent. Ada quad on peut, car il offre une bonne sécurité et est relativement standard dans ce but et enfin Scade car je suis dans le domaine de l'aero

    * : RTTI, exception passent souvent a la trape. Et les templates son pas toujours bien gérés
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Membre expert
    Il va falloir que vous definissiez le terme "embarque" pour qu'on reponde intelligemment. Je connais au moins 5 domaines qui sont consideres comme de l'embarque ou chacun d'entre eux ne peut accepter que certains languages qui contredisent tout choix general.

    On choisit pas un language pour un domaine, on choisis pour un projet.

  6. #6
    Expert éminent sénior
    Citation Envoyé par Klaim Voir le message
    Il va falloir que vous definissiez le terme "embarque" pour qu'on reponde intelligemment. Je connais au moins 5 domaines qui sont consideres comme de l'embarque ou chacun d'entre eux ne peut accepter que certains languages qui contredisent tout choix general.

    On choisit pas un language pour un domaine, on choisis pour un projet.
    Tu peux en choisir plusieurs pour dire que tu travailles avec plusieurs et tu préfères l'un pour telle et l'autre pour telle.

    Il s'agit de dénombrer le nombre de personnes utilisant un langage précis, parfois même pas par préférence mais par nécessité.

    Les résultats du sondage nous donnerons le langage le plus utilisé dans la communauté par nos développeurs embarqués.

    Merci

  7. #7
    Membre expert
    Ok je vois mieux l'intention. Dans ce cas la je vote C++.

  8. #8
    Expert éminent sénior
    Citation Envoyé par Klaim Voir le message
    Ok je vois mieux l'intention. Dans ce cas la je vote C++.
    As tu une préférence pour l'un d'eux ?
    As tu travaillé avec plusieurs ?
    Si tu avais à choisir tu aurais travaillé avec C++ ?

    Quel langage recommandes tu aux personnes qui comptent apprendre un langage pour postuler dans le domaine embarqué ?


    Tu m'as inspirée !

  9. #9
    Membre éprouvé
    Perso, pour des petits projets perso, ce qui m'a le plus fait plaisir, c'était dév en C# avec .NET MicroFramework sur la carte NetDuino (équivalent à Arduino)
    http://krossapp.com

    "S'adapter, c'est vaincre !"

  10. #10
    Expert éminent sénior
    C++
    Vous avez envie de contribuer au sein du Club Developpez.com ?

    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, ...etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  11. #11
    Membre éclairé
    Je ne suis pas développeur embarqué moi-même, mais j'ai fait (et je fais en ce moment même) de la validation de logiciel embarqué dans le ferroviaire et je n'ai toujours vu que du Ada (écrit directement à la main ou indirectement généré à partir de la méthode B).

    Ada était le langage principal pendant mes études et, vrai ou faux, on m'a toujours dit que c'est un langage qui a été conçu dès le départ pour pour faire de l’embarqué et du temps réel.

  12. #12
    Membre actif
    Forth (ou son descendant, factor) est-il encore utiliser ? si oui dans quel domaine et est-il utiliser dans l'embarquer ?

  13. #13
    Membre expert
    Citation Envoyé par Lana.Bauer Voir le message
    As tu une préférence pour l'un d'eux ?
    As tu travaillé avec plusieurs ?
    Oui, notemment C, C#, Java, Objective-C++ et quelques autres.

    Si tu avais à choisir tu aurais travaillé avec C++ ?
    Oui, c'est la ou j'ai le plus d'expertise et c'est aussi ce que je trouve de plus flexible (pour quelqu'un qui connait bien ce language, pas pour un debutant) autant au niveau performance (vitesse ou memoire ou taille des binaires) qu'au niveau "expression".

    J'aurais aime essayer D aussi.

    Quel langage recommandes tu aux personnes qui comptent apprendre un langage pour postuler dans le domaine embarqué ?
    Ca depends du domaine... mais miser sur C et C++ (en sachant les differences) est essentiel, meme si on se retrouve a bosser avec quelque chose d'autre.

  14. #14
    Membre éclairé
    Bonjour à tous

    Travaillant chez un équipementier automobile, je peux vous assurer que le langage le plus utilisé est le C.

    Au début de ma carrière, le langage le plus optimisé était l'assembleur, mais les compilateurs C ont bien progressés depuis et maintenant je ne vois pratiquement plus d'assembleur. par contre, le C++ n'est pas démocratisé dans notre domaine.
    Une seule exception, c'est la télématique automobile, ou l'on retrouve le C++ et peut être du Java embarqué.

    Notre principal souci est d'optimiser la mémoire utilisé par notre logiciel (RAM, ROM) et le temps d’exécution, et pour le moment, le C permet parfaitement la gestion de ces deux problématiques.

    Pour l'avenir, C va resté le langage le plus utilisé dans l'automobile. le Standard AUTOSAR défini par les constructeurs force l'utilisation de ce langage.

    Bon week end
    Page sur Developpez : http://pbriand.developpez.com

  15. #15
    Rédacteur

    Citation Envoyé par bpy1401 Voir le message
    Bonjour à tous

    Travaillant chez un équipementier automobile, je peux vous assurer que le langage le plus utilisé est le C.

    Au début de ma carrière, le langage le plus optimisé était l'assembleur, mais les compilateurs C ont bien progressés depuis et maintenant je ne vois pratiquement plus d'assembleur. par contre, le C++ n'est pas démocratisé dans notre domaine.
    Une seule exception, c'est la télématique automobile, ou l'on retrouve le C++ et peut être du Java embarqué.

    Notre principal souci est d'optimiser la mémoire utilisé par notre logiciel (RAM, ROM) et le temps d’exécution, et pour le moment, le C permet parfaitement la gestion de ces deux problématiques.

    Pour l'avenir, C va resté le langage le plus utilisé dans l'automobile. le Standard AUTOSAR défini par les constructeurs force l'utilisation de ce langage.

    Bon week end
    Quand je vois ca , je me dis quand même qu'il faudrait passer a autre chose que du C et réussir a trouver un langage qui puissent offrir

    • Une empreinte mémoire faible
    • Une simplicité d’utilisation
    • Une capacité de vérification formelle importante
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  16. #16
    Modérateur

    Citation Envoyé par Davidbrcz Voir le message
    Quand je vois ca , je me dis quand même qu'il faudrait passer a autre chose que du C
    Ou bien il faut faire des preuves de programmes -- ca a ete utilise par exemple pour concevoir la ligne 14 (ligne sans conducteur) a Paris.

    Et a ma connaissance, mais ca a peut-etre change recemment, aucun constructeur automobile ne s'y est mis.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  17. #17
    Membre confirmé
    En tant qu'électronicien je programme principalement des processeurs (arm principalement) 8 bits. Certains utilisent uniquement l'assembleur, d'autre peuvent utiliser le C (éventuellement pascal ou basic il me semble) d'où mon choix.
    OS: Debian squeeze
    Langage: C++ avec Qt

  18. #18
    Membre habitué
    En quel langage était le système embarqué dans la Toyota mortelle?

    http://www.developpez.com/actu/63561...dedommagement/

    (Je ne dirai pas le nom du langage pour ne pas froisser certains, mais juste que ça commence par un C...)

  19. #19
    Membre émérite
    salut,

    Citation Envoyé par Lana.Bauer Voir le message
    Quel langage recommandes tu aux personnes qui comptent apprendre un langage pour postuler dans le domaine embarqué ?
    Désolé d'être aussi cru, mais cette phrase n'a aucun sens. Je le dis comme ça pas que certains ou certaines se fassent des illusions. "L'embarqué" c'est pas du Arduino, ou du Raspberry Pi, et encore moins un "smartphone", et surtout il ne suffit pas d'apprendre un langage de programmation pour prétendre à une place "dans l'embarqué". Au sens industriel du terme, parce que c'est de ça qu'il s'agit ici, "l'embarqué" est un système informatique, numérique, éventuellement sur la base de microcontrôleurs, intégré dans un ensemble d'une tout autre nature, ça peut être une batterie, un frigo, une voiture, un TGV, un avion, entre parenthèses y'a aussi toute une branche du secteur du jouet, mais c'est un peut particulier et surtout très nuancé, y compris sur le plan de la réglementation, et avec tout ça, je vous fais grâce de l'appareillage médical. Bref, de "l'embarqué" y'en a partout, et suivant les secteurs, les impératifs et les obligations ne sont pas les mêmes, y compris sur les niveaux de compétences et de connaissances demandés, donc on ne travaille pas "dans l'embarqué" comme ça. La porte d'entrée, le plus souvent (je dirais presque exclusivement), c'est les écoles, la matière prédominante est en général l'électronique, les langages, eux, ils viennent avec, le reste est appris en entreprises pendant les périodes de (stages de) formations et après l'embauche. C'est un lourd investissement par ce que ça prend du temps pour obtenir un ou une employés 100% opérationnel. Pour les candidatures, il faut un bon bagage, une très grande flexibilité et de bonnes références.

    Enfin, comme on parle de langage dans ce thread, je confirme que le C est effectivement un des langages les plus utilisés dans les systèmes embarqués, et que le C++ tant de plus en plus à se démocratisé, ce qui n'empêche pas qu'une puce spécialisée puisse utiliser un langage spécifique. Cependant, je tiens à rappeler que les systèmes embarqués s'inscrivent dans un contexte d'interaction avec leur environnement, et que ce dernier est différent d'un secteur à l'autre, et on note des environnements différents dans un même secteur. Indéniablement, si c'est ce genre d'activité qui vous intéresse, c'est l'électronique qui vous offrira le plus d'opportunités. Bien sûr, sur certains modules ou projets complexes, il y a et il y aura toujours des unités consacrées uniquement à la programmation, à la partie logiciel ou micrologiciel, mais c'est pas ce qui revient majoritairement.

    Pour ce qui est des bogues logiciels (et même matériels, oui ça existe), je vais pas entrer dans le débat. Même si un langage donné peut aidé à réduire les risques, aucun ne permet de s'en prémunir et ce, quel que soit le degré d'expertise des développeurs ou concepteurs, ni même toutes les batteries de tests qu'a pu subir un système avant sa livraison, et sur certaines applications critiques, l'investissement en ce sens est conséquent, et "compte pour double" lorsqu'il s'agit de faire des corrections après livraison.

  20. #20
    Membre confirmé
    Pour de l'embarqué je vote immédiatement C, pour sa simplicité et légereté légendaire.