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 :

Pourquoi la communauté C++ s'intéresse plus à la technique et ignore la conception?


Sujet :

C++

  1. #341
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Effectivement, pour un language "élitiste" il est étonnant que des tas de jeunes (j'entends non-majeurs) arrivent a en faire quelque chose (certes en ignorant une grande partie du language). J'ai vu récemment des collegiens s'y mettre parcequ'ils avaient envie de faire du jeu vidéo. Moi même je suis passé par là (vers 17/18 ans j'ai fais mon premier "gros" jeu en apprenant les bases du C++ - pas le moderne a l'époque malheureusement, mais bon j'étais pas guidé), et je ne me suis servi que d'internet au début, puis de livres.
    Et je suis loin d'être un génie - je le prouve tous les jours

    Ca n'a rien d'élitiste.

  2. #342
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Effectivement, pour un language "élitiste" il est étonnant que des tas de jeunes (j'entends non-majeurs) arrivent a en faire quelque chose (certes en ignorant une grande partie du language). J'ai vu récemment des collegiens s'y mettre parcequ'ils avaient envie de faire du jeu vidéo. Moi même je suis passé par là (vers 17/18 ans j'ai fais mon premier "gros" jeu en apprenant les bases du C++ - pas le moderne a l'époque malheureusement, mais bon j'étais pas guidé), et je ne me suis servi que d'internet au début, puis de livres.
    Et je suis loin d'être un génie - je le prouve tous les jours

    Ca n'a rien d'élitiste.
    a mon avis il faut différencier ce qu'on fait comme projets en école ou chez soi et ce qui se passe en entreprise ou en open source.

    le premier type de projet on le fini , il n'est quasiment utilisé par personne, juste peut être une demo devant le prof et le projet est clos, pas de maintenance et pas d'évolution, et surtout on s'en fout des fuites mémoires, de l'optimisation,ect....

    et dans ce contexte tout devient facile, même si le projet est très mal conçu c'est pas grave.

    dans le contexte d'entreprise ou open source il y a d'autres contraintes qui font que si on maitrise pas bien les mécanismes d'un langage comme C++, on passe notre temps a corriger des bugs pour en introduire d'autres et ça se termine pas.

    alors est ce que c++ est aussi simple que les autres langages, comme beaucoup qui ont intervenu avant je crois pas, même le créateur de c++ dit qu'il est devenu "expert friendly".

    mais je suis d'accord que si on passe quelques années sur C++ on maitrise un langage très puissant , mais a condition de ne pas tomber dans le piège de toujours penser technique, parce qu'au départ chaque nouveau developpeur C++ passe beaucoup de temps sur la technique ce qui est normal vu la richesse de C++.

    mais a un moment donné il faut faire la bascule et ne pas rester focaliser sur la technique, il y en a ceux qui arrivent et ceux qui tombent dans le piège, et pour ces derniers même s'ils ont des années d'expérience ils vont toujours concevoir des projets d'une manière très compliquée.

    Ce constat est certes vrai pour les autres langages mais la nature riche de C++ fait qu'au départ on ce concentre plus sur la technique que d'autres langages et on prend les habitudes pro technique.

    Et peut être la question qui se pose est : quels sont les facteurs qui aide le plus a basculer d'une approche technique pur a une approche guidée par la conception?

  3. #343
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Issam_Lahlali Voir le message
    dans le contexte d'entreprise ou open source il y a d'autres contraintes qui font que si on maitrise pas bien les mécanismes d'un langage comme C++, on passe notre temps a corriger des bugs pour en introduire d'autres et ça se termine pas.
    ben pareil pour tout langage. Temps que l'on ne sait pas utiliser un debuggeur, on n'avance pas beaucoup.
    D'ailleurs, il me semble que le debuggeur C/C++ sont bien plus puissant que ceux des autres langages. Ceux de .net commence à être très bien aussi.

    alors est ce que c++ est aussi simple que les autres langages
    En C# et en java tout est référence. Le = ne fait que modifier la référence et le == teste la valeur des références et non l'objet. C'est pas super logique pour moi.
    Pour gérer des ressources système, il est préférable d'utiliser le using en C# pour leur libération. En C++ le RAII le fait pour toi.
    Le C++ est complexe parce que les gens le pense. Une fois enlevé l'utilisation des pointeurs, utiliser la S(T)l au lien de gérer la mémoire "à la main",de ce dire que c'est compliqué et que la personne arrête d'optimiser toute les deux lignes de code et qu'il optimise plutôt l'algorithmique avant d'aller plus loin si nécessaire . Le c++ n'est pas plus compliqué qu'un autre. D'ailleurs la S(T)L permet déjà de faire en majorité du code C++ sans écrire un seul delete. De plus, une boucle c'est une boucle, un itérateur c'est un itérateur, une fonction une fonction, un objet un objet... En quoi ça devrais être plus compliqué en C++?

    Et peut être la question qui se pose est : quels sont les facteurs qui aide le plus a basculer d'une approche technique pur a une approche guidée par la conception?
    l'expérience? Comprendre que le C++ n'est pas plus difficile?

    C'est drôle j'ai l'impression qu'avec les langages type java et C# c'est le phénomène inverse. On commence par l'approche conception et on fini par l'approche technique en oubliant de plus en plus la conception.

  4. #344
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Le C++ est complexe parce que c'est la complexité de la gestion mémoire. Grosso modo, la simplicité de Java ou .Net vient du fait que ces langages soulagent énormément le programmeur sur cet aspet. Je me souviens quand je découvrais .Net d'être assez épaté par ce genre de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int n = 10;
    string s = n.ToString();
    Le débutant .Net ne se rend pas du tout compte de tout ce que cela implique derrière. Le programmeur C++ y est confronté.

    Une développeur Java/.Net tombe de haut quand il découvre que C++ ne dispose pas de type string "natif". D'ailleurs, bien des bugs et problèmes en C++ viennent de la gestion des chaines de caractères, et puis les tableaux... Le concept de chaine null terminal implique un langage beaucoup plus "bas niveau". Un débutant doit rapidement se frotter à ce qui relève en fait du détail d'implémenttaion, sauf que c'est loin d'être un simple détail, c'est la base.

    Ca nous semble évident, mais pour beaucoup de monde ça ne l'est pas. Il y a les programmeurs qui arrivent à saisir ces concepts de gestion mémoire etc... et il y en a qui n'y arrivent tout simplement pas. Pour eux, le C++ fait partie des langages innaccessibles.

    Le C++ éclate aussi le code en .h et .cpp. Ca n'a l'air de rien, mais ça demande du temps avant d'acquérir la faculté d'aller regarder dans un .h. Java et .Net suppriment les contraintes le linkage, alors qu'en C++ ce sont des erreurs très obscures.

    Pour ces raisons et beaucoup d'autres, C++ est bien plus long à maîtriser. Une fois que c'est fait, ben c'est fait. Mais faut le faire, et ça saoule beaucoup de monde, car ce genre de contraintes donne l'impression d'être issue d'un autre âge.

  5. #345
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Une développeur Java/.Net tombe de haut quand il découvre que C++ ne dispose pas de type string "natif".
    Qu'entends-tu exactement par "natif" ?

    Car bien que n'étant pas un type primitif, std::string fait bel et bien partie du C++.

    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    D'ailleurs, bien des bugs et problèmes en C++ viennent de la gestion des chaines de caractères, et puis les tableaux... Le concept de chaine null terminal implique un langage beaucoup plus "bas niveau". Un débutant doit rapidement se frotter à ce qui relève en fait du détail d'implémenttaion, sauf que c'est loin d'être un simple détail, c'est la base.
    Ça fait quand même bien longtemps que l'on n'a plus à se préoccuper du 0 terminal ou de la gestion de la mémoire des chaines de caractères et des tableaux en C++.
    std::string et les containers de la STL (std::vector notamment), se charge très bien de ces soucis pour nous.

  6. #346
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Je me souviens quand je découvrais .Net d'être assez épaté par ce genre de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int n = 10;
    string s = n.ToString();
    Ceci, tu l'utilisera uniquement en cas d'école et utilisera plutôt StringFormat pour créer tes chaines. Tout comme tu utilisera stringstream.

  7. #347
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par gl Voir le message
    Qu'entends-tu exactement par "natif" ?
    Qui ne soit pas une classe que l'on doit inclure, mais un build-in type au même type que int ou float. Exemple de problème tout simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string s = "Hello" + " World!";
    Note que je ne cherche pas à dire que c'est bien ou mal, je constate simplement. Dans les autres langages ce n'est pas comme ça, et les débutants ne comprennent pas pourquoi c'est "si compliqué" en C++.

    Citation Envoyé par gl Voir le message
    Ça fait quand même bien longtemps que l'on n'a plus à se préoccuper du 0 terminal ou de la gestion de la mémoire des chaines de caractères et des tableaux en C++.
    std::string et les containers de la STL (std::vector notamment), se charge très bien de ces soucis pour nous.
    Tu n'as pas à t'en préoccuper certainement, ne pas à savoir que ça fonctionne ainsi je sais pas. Comme je l'ai dit, une fois qu'on le sait, ben on le sait et on sait faire avec sans problème.

    Le problème c'est le temps et la difficulté d'acquérir toute cette connaissance quasi-indispensable, qui bien souvent s'acquiert à coups de bugs et de crash, ce qui coûte cher à plusieurs niveaux. C'est simple : le C++ ça plante, voilà en gros l'image de base.

    Mon sentiment, c'est que les entreprises apprécient beaucoup les développeurs C++ expérimentés, mais qu'elles ne veulent pas les former.

  8. #348
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Par défaut
    Citation Envoyé par gl Voir le message
    Ça fait quand même bien longtemps que l'on n'a plus à se préoccuper du 0 terminal ou de la gestion de la mémoire des chaines de caractères et des tableaux en C++.
    std::string et les containers de la STL (std::vector notamment), se charge très bien de ces soucis pour nous.
    lorsqu'un developpeur C++ intègre un projet il ne trouve pas le monde idéal de C++ loin de la , a cause de l'historique des applications qui ont des années d'existence.

    donc forcement il doit connaitre comment travailler avec les char*, les pointeurs et les doubles pointeurs.

    et rare sont ceux qui entame un refactoring pour avoir un code moderne, ceux que j'ai connu qui ont fait cette démarche ils ont changer de langage et il migre vers C#, et comment les convaincre que c'est la manière classique du C++ qui était la cause de la complexité et qu'il existe une manière moderne aussi simple que C#.

    pour un décideur il donne une seule chance , et il ne joue pas a faire la même chose 2fois , pour lui il y a un investissement en jeu.

    donc oui le C++ actuellement propose des solutions plus simple qu'avant mais malheureusement c'est pas ce qu'on trouve dans des projets qui ont des années d'existence donc entrer dans le détail et connaitre les rouages du bas niveau est une nécessité pour tout developpeur C++.

  9. #349
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Issam_Lahlali Voir le message
    donc oui le C++ actuellement propose des solutions plus simple qu'avant mais malheureusement c'est pas ce qu'on trouve dans des projets qui ont des années d'existence donc entrer dans le détail et connaitre les rouages du bas niveau est une nécessité pour tout developpeur C++.
    Je le sais parfaitement, mais est-ce une raison pour continuer à écrire ce genre de code ?

    Entre continuer de travailler ainsi et tout refactorer de A à Z (ce qui est, nous sommes d'accord, généralement irréaliste), je vois une autre alternative, celle qui consiste à utiliser, dans la mesure du possible, les pratiques modernes lors de l'écriture de nouveau code et de la correction du code existant.

  10. #350
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Par défaut
    Citation Envoyé par gl Voir le message
    Entre continuer de travailler ainsi et tout refactorer de A à Z (ce qui est, nous sommes d'accord, généralement irréaliste), je vois une autre alternative, celle qui consiste à utiliser, dans la mesure du possible, les pratiques modernes lors de l'écriture de nouveau code et de la correction du code existant.
    tout a fait d'accord mais le developpeur doit aussi s'en soucier de ce qui est bas niveau aussi vu qu'il aura une maintenance a faire sur le code existant.

    ce que je veux dire c'est qu'on peut pas dire au developpeur c++ tu n'a qu'a te soucier de la manière moderne et oublie les char*, pointeur et autre complexité parce que dans le monde de travail il aura besoin de ça.

    finalement c'est pas la manière moderne de C++ qui va le soulager de connaitre la manière classique,il faut qu'il maitrise les 2 manières d'où la difficulté, une pour pouvoir maintenir sans introduire d'autres bugs et l'autre pour les évolutions et les nouveaux devs.

  11. #351
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par gl Voir le message
    Je le sais parfaitement, mais est-ce une raison pour continuer à écrire ce genre de code ?

    Entre continuer de travailler ainsi et tout refactorer de A à Z (ce qui est, nous sommes d'accord, généralement irréaliste), je vois une autre alternative, celle qui consiste à utiliser, dans la mesure du possible, les pratiques modernes lors de l'écriture de nouveau code et de la correction du code existant.
    Quand il s'agit de gestion mémoire, il est difficile de mixer plusieurs pratiques.

    Dans mon ancien taf, rien que migrer d'un type string maison au type QString a demandé plusieurs mois / homme, et quand même causé quelques regressions... chez le client bien sûr.

    Pour ce qui est d'utiliser des pointeurs intelligents... c'est tout ou rien, tu ne peux pas utiliser les shared_ptr dans une partie du code et pas le reste. Ca revient à effectuer des centaines / milliers de changements qui ont de fortes chances d'être testés tous ensemble d'un seul coup après plusieurs semaines de refactoring... effrayant. Refactorer l'usage des pointeurs dans une appli de +1 million de lignes de code c'est vraiment galère, car quand une appli est mal développée, elle l'est jusqu'au bout (couplage fort, structuration monolithique...). Alors les mecs préfèrent continuer comme ça, et tans pis pour les fuites et corruptions de mémoire qui trainent.

    Cette constation de combien le C++ mal employé peut être merdique m'avait carrément fait douter de la pertinence de ce langage, alors que je me suis beaucoup investi dans ce langage et sa communauté. Devoir coder ainsi en C++, c'est vraiment à te dégouter du langage. Et que faire quand le simple mot "pointeur intelligent" fait frémir l'équipe de dev et même son chef de projet ?

  12. #352
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Et que faire quand le simple mot "pointeur intelligent" fait frémir l'équipe de dev et même son chef de projet ?
    Tout refaire en... C

    A ce propos, on parle souvent de l'utilisation catastrophique des pointers en C++, mais on n'en parle jamais vraiment pour le C. Est-ce parce que très peu de "nouveaux" projets sont démarrés en C ? Mais qu'en est-il de la maintenance des milliers d'applis en C ?

  13. #353
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Vous vous souvenez de ce troll sur la ML de git (je crois) quand Linus Torvald avait réfuté l'idée de (re)faire git en C++ ?
    Ma libre interprétation depuis mes souvenirs est que que j'avais retenu de sa vision que ceux qui restent à faire du C savent ce qu'ils font. Ceux qui ont migré vers le C++, il en est heureux, ne peuvent (ou veulent?) plus faire de dégâts en C. Raison de plus pour lui de rester à développer ses applis en C.

    On en revient à cette vision de migrations de populations pas vraiment faites pour une chose et qui sont en perpétuelle course après la balle en argent. On pourrait presque croire que quand ils arrivent, la balle est déjà repartie.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  14. #354
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Cette constation de combien le C++ mal employé peut être merdique
    Les seuls langages pour lesquels on n'a pas d'exemples de code merdique sont ceux qui n'ont jamais servi.

    Citation Envoyé par metagoto Voir le message
    A ce propos, on parle souvent de l'utilisation catastrophique des pointers en C++, mais on n'en parle jamais vraiment pour le C. Est-ce parce que très peu de "nouveaux" projets sont démarrés en C ?
    C'est parce que tu n'écoutes pas aux bons endroits.

    Citation Envoyé par Luc Hermitte Voir le message
    On en revient à cette vision de migrations de populations pas vraiment faites pour une chose et qui sont en perpétuelle course après la balle en argent. On pourrait presque croire que quand ils arrivent, la balle est déjà repartie.
    There is no silver bullet (Brooks)

  15. #355
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par metagoto Voir le message
    Tout refaire en... C

    A ce propos, on parle souvent de l'utilisation catastrophique des pointers en C++, mais on n'en parle jamais vraiment pour le C. Est-ce parce que très peu de "nouveaux" projets sont démarrés en C ? Mais qu'en est-il de la maintenance des milliers d'applis en C ?
    Dans quelle mesure n'est-ce pas, simplement, parce que, une fois que l'on a constaté en C que les pointeurs (voire, pire encore les pointeurs sur void) sont dangereux et à manipuler "avec prudence", il n'y a aucune alternative pour arriver à s'en passer

    En C++, on en arrive, fatalement, à la même constatation, mais, comme il existe des alternatives pour s'en passer, on insiste peut être d'avantage sur le fait et on fait plus facilement la "publicité" de l'alternative
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  16. #356
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Mon sentiment, c'est que les entreprises apprécient beaucoup les développeurs C++ expérimentés, mais qu'elles ne veulent pas les former.
    C'est vrai, et c'est malheureusement logique. Pour une entreprise, investir dans la formation d'un développeur n'est presque jamais rentable (à l'exception des petites formations de quelques jours prévues au contrat, qui n'engagent à rien, et généralement ne servent pas à grand chose non plus). Le développeur, une fois formé, quittera l'entreprise dans la plupart des cas.


    Citation Envoyé par koala01 Voir le message
    En C++, on en arrive, fatalement, à la même constatation, mais, comme il existe des alternatives pour s'en passer, on insiste peut être d'avantage sur le fait et on fait plus facilement la "publicité" de l'alternative
    Une question se pose alors...

    Dans quelle mesure, le C++ n'est il pas un exemple que "le mieux est l'ennemi du bien". Je veux dire, en C++, il y a plein de façons, toutes plus abstraites ou plus compliquées les unes que les autres, de résoudre un problème (avec souvent, caché derrière, une mesure un peu ridicule de l'efficacité : la concision du code produit). Du coup, on passe son temps à réfléchir et tergiverser, là ou des développeurs "normaux" se mettent au boulot.

    On pourrait dire que cela garantit que tous les programmes C++ sont excellents, maintenables et évolutifs (et que tous les autres ne le sont pas), mais quelque chose me dit que ce n'est pas tout à fait le cas...

    Francois
    Dernière modification par ram-0000 ; 09/08/2009 à 21h16. Motif: fusion des messages

  17. #357
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Dans adobe.ASL ils ont un parseur ~SAX qui travaille avec des vues. Les chaines ne sont jamais copiées, à la place il ont un type chaine qui va pointer dans un buffer de caractères.
    Et comment ils gèrent les entités d'échappement, les commentaires au milieu du texte, etc?
    Une solution serait une transformation appliquée de manière paresseuse.

    Je veux dire, en C++, il y a plein de façons, toutes plus abstraites ou plus compliquées les unes que les autres, de résoudre un problème (avec souvent, caché derrière, une mesure un peu ridicule de l'efficacité : la concision du code produit). Du coup, on passe son temps à réfléchir et tergiverser, là ou des développeurs "normaux" se mettent au boulot.
    C'est un argument classique en faveur du C plutôt que le C++.
    Linus Torvalds, en particulier, dit que la capacité de créer des abstractions en C++ est trop dangereuse et que c'est pour ça qu'il pense que le C est cent fois mieux.

  18. #358
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Mon sentiment, c'est que les entreprises apprécient beaucoup les développeurs C++ expérimentés, mais qu'elles ne veulent pas les former.
    Ça résume bien la politique des SSII, c'est un peu moins vrai dans des PME.

    Mais dans tous les cas, c'est surtout à nous, développeurs plus expérimentés, de passer du temps à former les développeurs plus jeunes, même si la hiérarachie ne veut pas entendre parler de formations. Certes, ça prend du temps qu'on n'a pas toujours, qu'on aimerait passer à autre chose, mais je pense qu'au final on y est vraiment gagnant.

  19. #359
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    L'âge et l'expertise ne sont pas forcément corrélés.

  20. #360
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par loufoque Voir le message
    L'âge et l'expertise ne sont pas forcément corrélés.
    L'expertise, pas forcément, l'expérience, en revanche...

    Francois

Discussions similaires

  1. Pourquoi mon image ne s'affiche plus
    Par Gouyon dans le forum 2D
    Réponses: 5
    Dernier message: 18/03/2011, 13h51
  2. Réponses: 6
    Dernier message: 27/12/2010, 15h40
  3. Réponses: 10
    Dernier message: 22/12/2009, 19h58
  4. Réponses: 6
    Dernier message: 26/06/2006, 15h52
  5. Pourquoi n'y a-t-il plus de "délestage" massif sur le forum ?
    Par Eusebius dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 7
    Dernier message: 25/05/2006, 23h16

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