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

C++ Discussion :

C ou C++ pour l'embarqué/robotique


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Points : 11
    Points
    11
    Par défaut C ou C++ pour l'embarqué/robotique
    Bonjour, je suis débutant en programmation et j'aimerais savoir quel serait le meilleur langage pour programmer en robotique / embaruqé entre le langage C / C++, dès que je poste une question de ce type, il y a toujours des longs débats intéressants mais on ne me répond jamais a ma quesiton mdr

    Cela serait pour commencer des petits projets comme le "Dôme géodésique interactif LED" mais cela serait aussi pour m'avancer pour mon futur métier.
    merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    toujours des longs débats intéressants mais on ne me répond jamais a ma quesiton mdr
    Normal, ce n'est pas le type de question qui peut être tranché "définitivement".

    Tu choisis le robot, le framework d'utilisation du robot, et il y a 90% qu'il t'impose plus ou moins fermement un langage.

    C'est à toi de t'adapter.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    d'accord je vois et que me conseillerez vous d'apprendre a votre avis ? je m(y connais pas trop j'aimerais bien savoir pcq j'ai psa trop envie de faire le mauvais choix

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut Orthographe
    J'ai fait du C pendant des années avant de me mettre au C++ il y a deux ans. Je ne pourrais plus revenir en arrière. Mon collègue de gauche est dans la même situation.

    Il faut bien voir que tout ce que tu peux faire en C, tu peux le faire en C++. Il n'y a donc aucune bonne raison (*) de se limiter à C : autant coder pareil mais compiler en C++. Quand tu auras besoin de fonctionnalités plus avancées, tu pourras quitter le terrain purement C de C++ et t'aventurer sur le terrain ++. Avec le temps, tu feras de plus en plus de ++ et tu y trouveras beaucoup de bénéfices. Pour moi, tu ne choisis pas C : ton environnement t'impose C. Notamment le fait que C++ n'est pas toujours disponible sur toutes les cibles embarquées. Ça devient un peu rare, de plus en plus souvent tu trouves du GCC et donc du C++. Aussi, ça peut être pour des raisons historiques : ton entreprise a toujours fait du C, ils ne veulent pas changer, voilà fini.

    (*) : en fait il y a une seule bonne raison à mes yeux : si les gens ne veulent pas faire l'effort de bien comprendre ce qui se cachent derrière C++ et utilisent à gogo n'importe quelle fonctionnalité sans se soucier des conséquences (performances, lisibilité, maintenabilité, consommation mémoire)...

  5. #5
    Membre éprouvé
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 417
    Points : 1 247
    Points
    1 247
    Par défaut
    C'est parce qu'il n'y a pas de bonne réponse à cette question.
    Cela dépend de ton compilateur, de ce que tu cherches à implémenter, des libraires additionnelles que tu veux utiliser ou de ta HAL.
    N'oublies pas que tout ce que tu écris en C++ peut être écrit en C ... Avec des avantages et des inconvénients.
    Personnellement, pour un code simple très proche du hardware, je préfère C. Mais si je fais un code complexe avec des modules instanciés dynamiquement je préfère C++.
    Par ailleurs, si je fais du mbed (ou une autre HAL C++), je vais naturellement poussé vers C++.
    Enfin, il faut te demander à quel version de C ou C++ tu as accès. Du C89 n'offre pas les mêmes possibilité que du C99.

    Bref, tu génèreras beaucoup de débats avec cette question. Mais entre nous elle est secondaire, car la plupart du temps tu aura le choix entre C et C++ et au final, à moins d'une contrainte, les gens choisissent ce qu'il préfère.

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Bonjour,

    tu poses 2 questions :
    - première porte sur la pertinence du C ou C++ pour la robotique. C'est sûr que cela partira en débat, il suffit de voir les messages précédents.
    - seconde question est sur ton projet de dôme géodésique à LED qui est complètement occulté par la première question.

    Pour moi ce sont deux choses complètement différentes. Pour ton projet de dôme, je t'invite à poser la question différemment dans le forum Embarqué mais en détaillant ton projet et sans évoquer le C/C++. La question telle que tu la poses, est trop vague, donc tu n'auras pas de réponse précise, seulement des pistes. Ensuite, quand ton idée sera plus précise tu pourras choisir les technologies qui te conviennent le mieux en fonction de ton budget, de tes connaissances et de ce que tu veux faire.

  7. #7
    Membre averti Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par Bktero Voir le message
    (*) : en fait il y a une seule bonne raison à mes yeux : si les gens ne veulent pas faire l'effort de bien comprendre ce qui se cachent derrière C++ et utilisent à gogo n'importe quelle fonctionnalité sans se soucier des conséquences (performances, lisibilité, maintenabilité, consommation mémoire)...
    Pourquoi cette sensation étrange de me sentir visé ?
    Plus sérieusement, ça prend combien d'années d'efforts pour atteindre un compromis acceptable entre perfs, lisibilité, maintenabilité, mémoire ? Parce que après 3 ans de C++ (un ptit bleu quoi), je suis déjà content quand j'arrive à comprendre le code que j'écris et à pouvoir le modifier plus ou moins facilement ... Par contre j'ai vraiment aucune vision concernant les perfs et la mémoire.
    Le débutant, lui, ignore qu'il ignore à ce point, il est fier de ses premiers succès, bien plus qu'il n'est conscient de l'étendue de ce qu'il ne sait pas, dès qu'il progresse en revanche, dès que s'accroît ce qu'il sait, il commence à saisir tout ce qui manque encore à son savoir. Qui sait peu ignore aussi très peu. [Roger Pol-Droit]
    Github
    Mon tout premier projet: une bibliothèque de simulation de génétique des populations

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Il n'y avait rien de personnel dans mon attaque

    Tu fais du C++ depuis plus longtemps que moi, pourtant j'ai une vision de pas mal de choses sur le sujet, mais ça dépend des priorités des projets. Travaillant dans l'embarqué, je surveille en permanence la consommation mémoire. C'est par exemple pour ça que je n'utilise pas <iostream> et que j'ai codé des choses pour avoir des syntaxes semblables mais avec bien moins de fonctionnalités.

  9. #9
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Citation Envoyé par alex74424 Voir le message
    d'accord je vois et que me conseillerez vous d'apprendre a votre avis ? je m(y connais pas trop j'aimerais bien savoir pcq j'ai psa trop envie de faire le mauvais choix.
    Dans la plus grande majorité des cas, le langage de programmation est simplement imposé par les normes métiers qui demandent de la sûreté de fonctionnement (S.I.L.)

    Ferroviaire - EN 50128
    Avionique / Contrôle aérien - DO 178C / DO 278A
    Automobile - ISO 26262-6
    Générique (équipements électroniques dans l'industrie a risque) CEI 61508-3
    Nucléaire - CEI 60880 / CEI 61513
    Médical - CEI 60601 -1-4, ISO 62034
    Processus industriels, machines - CEI 61511, ISO 13849, CEI 62061

    Par exemple, si un jour tu fais de la robotique pour le nucléaire, il y a toutes les chances que tu doives te conformer à la norme du nucléaire. Idem pour le médical ou l'industrie à risque (moi j'étais dans l'industrie à risque, la détection des gaz toxiques et explosifs d'où la quasi obligation d'être certifié SIL CEI 61508-3 en hard comme en soft).

    C et C++ sont recommandés pour les logiciels embarqués et certifiés SIL dans tous ces domaines mais il y a des restrictions qui peuvent quand même empêcher C++ de s'exprimer pleinement. Voir l'exemple de Bktero qui est une exigence très forte en S.I.L. (et il n'y a pas que ça)

    De tous les professionnels que j'ai pu rencontrer dans ma carrière (en formation, en séminaire, autres) le langage C est toujours très dominant.

    http://www.captronic.fr/docrestreint...IVER_ENSIB.pdf
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  10. #10
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    merci beaucoup pour toutes vos réponses, je penses donc apprendre au moins les bases en C/C++, mais quel serait le meilleur cours ?

  11. #11
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Quel que soit ton choix, sache surtout que le C++ n'est pas du C.
    Les bonnes pratiques du C sont souvent désastreuses en C++, parce qu'il y a des changements fondamentaux apportés par le C++.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. C ou C++ pour l'embarqué/robotique
    Par alex74424 dans le forum Embarqué
    Réponses: 1
    Dernier message: 21/11/2018, 11h31
  2. Compiler C++ pour système embarqué
    Par Miklo44 dans le forum Choisir un environnement de développement
    Réponses: 10
    Dernier message: 09/03/2007, 11h59
  3. Créer une distribution Linux pour l'embarqué
    Par Flophx dans le forum Linux
    Réponses: 2
    Dernier message: 16/02/2007, 13h07
  4. Programme audio (microphone) pour carte Embarquée
    Par littlesquall dans le forum C
    Réponses: 9
    Dernier message: 20/10/2005, 09h16

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