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 :

CppCon 2016 : persuader les programmeurs de C de migrer vers C++


Sujet :

C++

  1. #41
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Non mais les vrais warriors codent en C et puis c'est tout.


























  2. #42
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 192
    Points : 678
    Points
    678
    Par défaut
    J'ai moi même fait la transition de C à C++ (je n'ai pas abandonné le C pour autant ) et honnêtement si c'était à refaire je ne le referais pas. C++ est syntaxiquement d'une complexité infinie par rapport aux langages modernes qui offrent les mêmes fonctionnalités et même avec un usage quasi quotidien je n'arrive pas à m'y faire. Je pense que ce fut une erreur de vouloir conserver aussi longtemps la rétrocompatibilité.
    Sauf besoin impératif de compatibilité avec du code existant je ne pense pas que ça vaille la peine de se mettre maintenant au C++.

  3. #43
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    A mon avis, le principal problème maintenant, c'est qu'il y a compatiblité avec le C et que le programmeur C refait du C au bout de quelques jours plutôt que de devoir chercher comme faire plus efficacement en C++.

    Il faut aussi se poser la question de ce que l'on fait avec le langage. En C++ on ne fait pas la même chose sur un micro-controlleur que pour un GUI ou un process server. C'est assez ouvert et c'est peut-être ça qui est déroutant (mais c'est le but du langage).

    Si le C++ est si complexe, que dire du Java ou même du Javascript? Ca doit vous paraitre des usines à gaz incompréhensibles.

  4. #44
    Membre expérimenté
    Profil pro
    Ingénieur système Linux N3
    Inscrit en
    Juillet 2008
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur système Linux N3

    Informations forums :
    Inscription : Juillet 2008
    Messages : 416
    Points : 1 517
    Points
    1 517
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    @CaptainDangeax, @wolinn, ça fait longtemps que vous développez ?

    Mon intuition me souffle que c'est un état d'esprit propre à la jeunesse (avec mes 20ans d'expérience et plus -- je redécouvre sans cesse les joies de la compilation), vu que l'on tend à devenir plus pragmatiques et à accepter plus facilement les erreurs pour les avoir expérimentées à un moment ou un autre. Mais, je suis loin d'en être sûr. Est-ce une attitude juste humaine? Ou peut-être une conséquence de vos secteurs d'activité?
    J'ai 47 ans, j'ai commencé à programmer à 14 ans en BASIC et assembleur 6502. Après PASCAL et assembleur 8085 pendant mes études d'électronique, puis assembleur 8051 pour mon stage de fin d'études. J'ai une formation d'électronicien, ce qui explique peut-être mon approche très près du matériel lorsque je programme. J'ai pratiqué VB et VBA au cours de ma carrière professionnelle, mais que c'est mauvais le VBA. Aujourd'hui, je ne me qualifie pas comme développeur. À la maison, je pratique le C (appris avec le K&R) et l'assembleur 8051 en loisir. Au boulot, c'est BASH et PYTHON quand le BASH ne suffit plus.

  5. #45
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par foetus Voir le message
    Justement tu te trompes Depuis le C++11, le C++ n'est plus du C (même si la compatibilité est assurée). Le métaprogrammation a pris le dessus.
    Et c'est d'ailleurs pour cela que le C++ peut-être utilisé en embarqué: avec les "traits", SFINAE, et autres, le compilateur fait plein de tests et optimise le code "à ta place"

    Regarde le code nikko34: c'est une orgie de "templates"
    Je n'arrive pas à comprendre ce que veut dire "Depuis le C++11, le C++ n'est plus du C (même si la compatibilité est assurée)". Ça me parait contradictoire. Tu peux expliquer ?

  6. #46
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    Ça me parait contradictoire. Tu peux expliquer ?
    Regarde la documentation en ligne : (et encore je ne parle pas de toutes les ambiguïtés supprimées comme le "perfect forwarding" ou les rvalues, lvalues, xvalues, glvalues, et prvalues (universal ref???))



    Comme l'a dit nikko34 (et les vieilles habitudes qui ont la vie dure), le programmeur C qui veut faire du C++ moderne va vite abandonné

  7. #47
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 485
    Points
    15 485
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    Si le C++ est si complexe, que dire du Java ou même du Javascript? Ca doit vous paraitre des usines à gaz incompréhensibles.
    Au contraire le langage Java en lui même est très simple par rapport au C++. Il a volontairement choisi de se débarrasser des aspect compliqués de C++. Après si tu compte les bibliothèques standard ça n'est pas comparable su que celle de Java est bien plus fournie.

    JavaScript c'est assez différent. C'est a la base un beau bordel qu'on a essayer de spécifier a postériori.

  8. #48
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Pourquoi les generics en Java c'est simple et vector< string > en c++ ce serait compliqué?

    Pourquoi se plonger dans la lib Java et pas dans la lib C++?

  9. #49
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    Pourquoi les generics en Java c'est simple et vector< string > en c++ ce serait compliqué?
    Parce qu'il me semble que ce n'est pas la même chose

    En C++, c'est du texte à trou, et c'est la compilateur qui va remplacer et ensuite te dire si "le contrat" n'est pas respecté.

    En Java, le generic est vérifié à l'exécution. "disparaissent à l'exécution" me dit rt15

  10. #50
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Je sais bien que c'est pas la même chose, mais je pense que c'est pas si compliqué à utiliser quand même?

    Je veux dire, le duck typing, yen a dans plein de langage c'est si désobligeant de voir ses erreurs à la compilation?.

  11. #51
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Je développe en C++ pour de l'embarqué, avec un environnement de cross compilation pour générer les binaires dans l’architecture cible.

    Une fois compilé, optimisé, transformé en instruction processeur, qu'est-ce que ça change si en amont ça a été fait en C ou en C++ ?
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  12. #52
    Membre éclairé Avatar de rt15
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 665
    Points
    665
    Par défaut
    Citation Envoyé par foetus Voir le message
    En Java, le generic est vérifié à l'exécution.
    Non, les génériques disparaissent à l'exécution.
    List<String> c'est la même chose que List<Object> à l'exécution.

    Sérieusement le C++ est au moins 10 fois plus compliqué que le Java.
    Héritage multiple.
    Alignement des champs de structures.
    Possibilité de faire de l'asm inline.
    Pas de garbage collector.
    Pas de caractères "magiques" UTF-32 [edit : lire UTF-16].
    Longtemps il a manqué des trucs de bases dans la librairie standard genre les threads. Il fallait traiter chaque OS. J'imagine qu'il en reste.
    Surcharge des opérateurs.
    Possibilité de faire du procédural, pas juste des fonctions statiques dans des classes.
    Les pointeurs...
    Les macros.
    ...

  13. #53
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par rt15 Voir le message
    Héritage multiple.
    Alors que pouvoir implements multiple est beaucoup plus simple
    Citation Envoyé par rt15 Voir le message
    Alignement des champs de structures.
    Tu peux très bien t'en moquer, tu es libre de plomber tes perfs.
    Citation Envoyé par rt15 Voir le message
    Possibilité de faire de l'asm inline.
    J'en ai jamais eu besoin, peut-être rencontré 1 seule fois.
    Citation Envoyé par rt15 Voir le message
    Pas de garbage collector.
    Hé oui, il faut savoir ce que l'on fait, personne pour balayer derrière toi
    Citation Envoyé par rt15 Voir le message
    Pas de caractères "magiques" UTF-32.
    J'ignore de quoi tu parles, n'en ai donc jamais utilisé ni rencontré, ça a pas l'air bien important donc.
    Citation Envoyé par rt15 Voir le message
    Longtemps il a manqué des trucs de bases dans la librairie standard genre les threads. Il fallait traiter chaque OS. J'imagine qu'il en reste.
    Longtemps il a existé tout un tas de libs pour le faire (pthread, TBB, Boost, ...)
    Citation Envoyé par rt15 Voir le message
    Surcharge des opérateurs.
    Ne les utilise pas si tu sais pas y faire, c'est juste un truc super utile sinon
    Citation Envoyé par rt15 Voir le message
    Possibilité de faire du procédural, pas juste des fonctions statiques dans des classes.
    C'est vrai que devoir écrire une classe mytho pour avoir une fonction main m'a toujours paru bien plus intelligent
    Citation Envoyé par rt15 Voir le message
    Les pointeurs...
    Cf le garbage collector. J'imagine qu'il est plus simple de croire que tout est magie et laisser JAVA manipuler tout ça pour toi
    Citation Envoyé par rt15 Voir le message
    Les macros.
    Un outil très pratique hérité du C à la base

    Sinon pour le troll JAVA vs C++ ça se passe ici http://www.developpez.net/forums/d18...t-cpp-vs-java/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  14. #54
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    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 069
    Points : 12 113
    Points
    12 113
    Par défaut
    Héritage multiple.
    Alignement des champs de structures.
    Possibilité de faire de l'asm inline.
    Pas de garbage collector.
    Pas de caractères "magiques" UTF-32.
    Longtemps il a manqué des trucs de bases dans la librairie standard genre les threads. Il fallait traiter chaque OS. J'imagine qu'il en reste.
    Surcharge des opérateurs.
    Possibilité de faire du procédural, pas juste des fonctions statiques dans des classes.
    Les pointeurs...
    Les macros.
    Ce ne sont que des possibilités, dans un restaurant 3 étoiles, on ne prend pas tous les plats à la carte.
    Et les "Pas de", c'est juste pas en standard, sinon, on trouve toujours notre bonheur avec des librairies supplémentaires.

    Et avec JAVA 8 (fonctionnel, ...), tu vas péter un anévrisme.

    P.S.: En plus, les trucs les plus cheloux (Les pointeurs, Les macros, ...), c'est à cause du C, donc comme argument pour interdire la migration/évaluation C vers C++, c'est assez moyen.

  15. #55
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 624
    Points
    624
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Sinon pour le troll JAVA vs C++ ça se passe ici http://www.developpez.net/forums/d18...t-cpp-vs-java/
    Oui, ici c'est un troll C vs C++.

  16. #56
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2015
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 445
    Points : 1 953
    Points
    1 953
    Par défaut Vive c++ !
    C'est de la provoc. Pascalien d'élection (Pascal VMS, Delphi, fpc, ...), COBOLISTE par obligation, j'ai maintenu du code C et C++. Je parle d'applications bancaires sur grands systèmes. Y a pas photo, pour comprendre ce qui se passe quand on ne l'a pas écrit soi-même C++ est infiniment meilleur que C.
    Je me suis intéressé aux dernières versions, franchement, tout ça est fichtrement bien foutu. Ajoutez la portabilité, la communauté, et vous comprendrez que je regarde avec perplexité les managers réticents à ce langage. Notez, ils sont managers, pas forcément bons, donc !

  17. #57
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par rt15 Voir le message
    Possibilité de faire du procédural, pas juste des fonctions statiques dans des classes.
    J'ai une très nette préférence pour le C++ par rapport au C# / Java (pour poser le contexte).
    Mais en quoi c'est un problème ?
    En C# (mais je ferais la même chose en Java), j'ai toujours au moins une class static dans laquelle je mets des fonctions utilitaires (qui auraient été des fonctions libres en C++). J'imagine que c'est mal et trop collé sur la façon de penser C++, mais... c'est bien à ça que servent les classent statiques ? (Équivalent d'un namespace + fonctions libres en C++ ??)

  18. #58
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Sinon la feature la plus intéressante, c'est quand même le destructeur appelé de manière déterministe.

    Et ça ya peu de langage qui le font en fait?

    Après reprocher au C++ de pouvoir faire plein de choses différentes avec, c'est fort. Mes programmes pour micro-controlleurs sans STL ni exceptions (pas dispo dans le compilateur) utilisent des features différentes du langage. Et c'est normal non? Mais on retrouve aussi des classes, des templates, des destructeurs (oui! plein!).

  19. #59
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2015
    Messages : 26
    Points : 35
    Points
    35
    Par défaut
    C'est effectivement ce qui me manque le plus dans les autres langages, et c'est sans doute l'amour de cette possibilité qui me fait détester les GC (sauf en programmation fonctionnelle <3).
    Après en C, on peut facilement faire du nettoyage à base de Goto (plus fiables qu'en C++ à cause des exceptions), mais c'est moins propres. Dans les autres langages faut attendre que le GC fasse son boulot. Beeeurk

  20. #60
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    Je veux dire, le duck typing, yen a dans plein de langage c'est si désobligeant de voir ses erreurs à la compilation?.
    C'est totalement différent et incorrect
    En généralisant à fond, on peut dire que le "duck typing" c'est un branchement à l'exécution, alors qu'avec le C++ moderne on "va programmer" le compilateur.
    Je pense que c'est le seul langage et sauf cas d'optimisation poussée, où on doit s'en remettre autant au compilateur.

    En Java, lorsqu'on fait un new on s'en fiche de ce que le ramasse-miettes fait. Lorsque tu vois les vidéos sur Youtube sur les déductions de types du Javascript tu te marres Mais, le Javasctipt fait tourner des millions de sites et les programmeurs s'en fichent.

    C'est pour cela que nikko34 est côté de la plaque lorsqu'il dit "Après reprocher au C++ de pouvoir faire plein de choses différentes avec, c'est fort."

    Ce qu'on reproche au C++ c'est 1) avoir trop d'outils 2) de connaître parfaitement le compilateur et ses subtilités

    Je suis d'1 œil l'actualité Visual C++ , mais il me semble que même Microsoft a jeté l'éponge du compilateur C++: il prend CLang

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/10/2016, 21h02
  2. Réponses: 8
    Dernier message: 27/11/2009, 12h13
  3. [Livre]C++ Pour les programmeurs C
    Par progfou dans le forum C++
    Réponses: 1
    Dernier message: 31/03/2008, 19h42
  4. [Humour] les programmeurs et les blondes.
    Par souviron34 dans le forum La taverne du Club : Humour et divers
    Réponses: 12
    Dernier message: 05/03/2007, 09h52
  5. Réponses: 10
    Dernier message: 30/01/2007, 15h29

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