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. #81
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par Issam_Lahlali Voir le message
    Les autres développeurs sont bien cadrés par leur langage et framework mais pour C++ il faut être doublement vigilant a tout erreur de conception ou de choix de librairie ça peut couter très très cher.
    Tu peux expliquer pourquoi "doublement vigilant" et pourquoi "très très cher" ?

  2. #82
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Alp Voir le message
    Tu peux expliquer pourquoi "doublement vigilant" et pourquoi "très très cher" ?
    lorsqu'un langage est aussi riche comme c++ ou on a pas mal de concepts objet et non objet plus des possibilités non existante dans d'autre langage comme l'héritage multiple et le mot clé friend il faut bien maitriser ce qu'on fait donc il faut être doublement vigilant.

    et pour les librairies techniques il y en a pas mal et un mauvais choix peut engendrer une perte de temps et d'énergie donc ça coutera très très très cher.

  3. #83
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par jabbounet Voir le message

    il vaudrait mieux apporter des proposition pour faire avancer les choses.
    je ne sais pas si des propositions comme:

    - homogénéisation des libraires.
    - éviter le couplage fort avec les librairies techniques.
    - bien utiliser MVC.
    - éviter l'utilisation de Friend a tord et a travers
    - faire comprendre aux développeurs que devenir architecte ou concepteur est aussi noble que devenir chef de projet

    plus d'autres évoqués dans mes posts ne sont pas des propositions?

    et tant que tu parle de propositions, ça sera bien que chacun de nous évoque ces propositions pour avancer dans la discussion.

  4. #84
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par Issam_Lahlali Voir le message
    lorsqu'un langage est aussi riche comme c++ ou on a pas mal de concepts objet et non objet plus des possibilités non existante dans d'autre langage comme l'héritage multiple et le mot clé friend il faut bien maitriser ce qu'on fait donc il faut être doublement vigilant.

    et pour les librairies techniques il y en a pas mal et un mauvais choix peut engendrer une perte de temps et d'énergie donc ça coutera très très très cher.
    En quoi est-ce différent d'un autre langage ?

    Java et C#, pour ne mentionner que ceux-là, ont leurs spécificités également, et la possibilité de faire des mauvais choix de bibliothèque y est aussi présente je pense.

    Bref, tu pourrais détailler vraiment plus ? Je veux dire expliciter ton argument un maximum.

  5. #85
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Alp Voir le message
    Bref, tu pourrais détailler vraiment plus ? Je veux dire expliciter ton argument un maximum.
    pour être clair je parle de librairie technique et a ma connaissance en dotnet par exemple la seule la plus utilisé c'est le framework dotnet qui contient la majorité des besoins techniques et en plus c'est homogène.

    en c++ on a pour la partie graphique une multitude de choix: WTL,MFC,wxWidget,QT,VCL plus d'autres .

    donc deja en dotnet on ne se pose pas de question sur quel type utiliser pour les chaines de caractères par contre en c++ on a :

    char*,std::string,ATL::CString,CString de MFC,QString plus d'autre bref c'est la jungle.

    et de même pour les Files quel type utiliser:
    handle directement,File,QFile,....

    alors le choix juste de la couche technique devient vite un casse tête surtout pour un débutant.

    Et bien sur on va me dire le mieux c'est STL,Boost,QT mais c'est pas l'avis de tout le monde et beaucoup de boites utilisent leurs librairies préférés.

    et rien que le concept de la spécialisation qui est très utilisé en c++ nettement plus que C#, puisque les 2 librairies STL et BOOST se basent beaucoup sur ce concept rend l'utilisation et la compréhension des API c++ pas aussi facile que c#.

    et sincèrement on m'accuse que je ne donne pas d'exemple concret,malgré que a chaque fois j'essaye de donner des exemples concrets.

    est ce que tu peux me donner des arguments que l'utilisation de C++ est très simple au lieu juste de critiquer mes arguments

  6. #86
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    La seule chose que tu critiques, j'ai l'impression, c'est qu'il n'y ait pas un maximum de choses qui soit standard.

    Mais le C++ s'est standardisé (<=> publication d'une norme qui le décrit de A à Z, ainsi que sa bibliothèque standard) qu'en 1998 pour la première fois. Beaucoup de choses existaient déjà (compilos, bibliothèques, ...).

    Le fait qu'il n'y ait pas une boîte derrière C++ a pour conséquence ce genre de "problèmes", mais c'est aussi ce qui fait sa force à mon avis.

    Et imaginons, on voudrait une bibliothèque GUI en standard. Tu prendrais laquelle ?
    Pour Java, y'a Swing, mais résultat c'est que la plupart des gens regardent ailleurs (pour des projets pros, je veux dire, ceux qui veulent une bonne vraie IHM).
    Qt est super, mais il y a des métacompilateurs, Adobe.Adam&Eve trop difficile à installer, peu documentée, etc.

    Biensûr, je regrette qu'on n'ait pas plus de choses en standard, mais ça se fait, petit à petit. Par exemple, en C++0x, on aura pleins de nouveautés très sympathiques, à la fois dans le langage et la bibliothèque standard (l'une des choses qui va le plus impacter la vie des programmeurs C++ c'est l'apparition des threads & outils associés dans la bibliothèque standard). Bref, autant de choses qui changent petit à petit. Beaucoup de mouvements commencent dans Boost et autres projets de ce genre et se généralisent à travers la communauté C++, et touchent de plus en plus d'entreprise. Le fait que ça ne soit pas une boîte derrière, ça change énormément la donne, mais ce n'st pas une mauvaise chose. C'a ses avantages et ses inconvénients à mon avis.

  7. #87
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Alp Voir le message
    Biensûr, je regrette qu'on n'ait pas plus de choses en standard, mais ça se fait, petit à petit. Par exemple, en C++0x, on aura pleins de nouveautés très sympathiques, à la fois dans le langage et la bibliothèque standard (l'une des choses qui va le plus impacter la vie des programmeurs C++ c'est l'apparition des threads & outils associés dans la bibliothèque standard). Bref, autant de choses qui changent petit à petit. Beaucoup de mouvements commencent dans Boost et autres projets de ce genre et se généralisent à travers la communauté C++, et touchent de plus en plus d'entreprise. Le fait que ça ne soit pas une boîte derrière, ça change énormément la donne, mais ce n'st pas une mauvaise chose. C'a ses avantages et ses inconvénients à mon avis.
    Heureusement qu'il y a des choses qui changent notamment c++0x s'est bien positionner dans un domaine qui aura son influence après , et il s'agit de la programmation parallèle.

    mais a ton avis et vu ton expérience en c++ et je veux une réponse objective , est ce que tu vois pas que C++ actuellement est surtout un langage d'expert et difficilement accessible a un débutant surtout qu'on le néglige de plus en plus dans le cursus scolaire?

    et aussi je pose la question a ceux qui ont une idée du recrutement en france et a quel point trouver un bon profil c++ devient mission impossible maintenant?

  8. #88
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    google -> expert-friendly C++ (Stroustrup)
    Rien de nouveau à l'horizon, nous le savons très bien. (ou pourquoi nous ne voyons pas l'intérêt de débattre sur un truc dont nous avons parfaitement conscience)

    C'est une chose. Qui n'a rien avoir avec le "Pourquoi la communauté C++ s'intéresse plus a la technique et ignore la conception?"
    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...

  9. #89
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    C'est une chose. Qui n'a rien avoir avec le "Pourquoi la communauté C++ s'intéresse plus a la technique et ignore la conception?"
    Imaginant qu'on s'intéresse de plus en plus a la conception , qu'est ce qu'ils nous empêchent de faire abstraction a la complexité et proposer des trucs simples.

    autrement qu'est ce qu'on peut faire en c# en terme de langage et non de framework qu'on arrive pas a faire en C++?

    a mon avis C# est inclu dans C++ en terme de possibilité de langage, donc qu'est ce qui cloche pour que c++ ne soit pas beginner friendly.

    a mon avis comme alp et loic l'ont déjà mentionné c'est l'absence d'unification donc pas de librairie homogène , par contre on a une multitude de choix.

    et dans ce contexte je ne vois que la conception qui peut résoudre ce problème pour faire tant que possible abstraction a la complexité.

    et j'espère qu'un jour on aura des interfaces standards pour toute la couche technique mais des implémentations différentes.

    par exemple avoir IWindow,IFile et autre qui contiennent tout ce qu'il faut comme méthodes nécessaires et chaque boite implémente a sa sauce, QT, Microsoft et autre.

    Malheureusement c'est trop tard pour une telle démarche mais je reste toujours optimiste.

    et merci pour le tuyeau de recherche dans google , grâce a ça j'ai trouver un article http://www.technologyreview.com/InfoTech/17831/ de stroustrup et on voit bien qu'il met aussi l'accent entre autre sur la conception comme facteur qui a contribuer au fait que c++ devient expert friendly.

  10. #90
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par Issam_Lahlali Voir le message
    il faut aussi se mettre en tête qu'un mathématicien, un physicien ou un financier aimeraient bien aussi faire quelques développement et ils n'ont pas le temps a consacrer a un langage pour devenir expert.
    C'est peut être justement là qu'est tout le problème:

    Une certaine société que je ne nommerai pas a mis des années à convaincre les gens que l'informatique est "facile", alors que ce n'est pas le cas...

    On peut, éventuellement, dire que l'utilisation de l'outil informatique est facile, mais ce n'est surement pas le cas de la création d'outils informatiques

    Et, tout comme il ne faut pas demander à un comptable de faire une densitométrique, à un chimiste de deviser sur l'éthimologie comparée d'un terme particulier ou à un linguiste de calculer la pression partielle d'hélium que l'on trouve dans le corps humain à deux cents mètres de profondeurs, il faut faire en sorte que la programmation professionnelle soit prise en charge par... des programmeurs professionnels...

    Le problème vient du fait qu'il est possible de se procurer un PC pour moins de 400€ et un compilateur gratuitement (hors frais de connexion internet), alors qu'un densitomètre, un programme de gestion du plan comptable normalisé complet ou un programme de simulation physique professionnelle vont coûter suffisamment cher pour dissuader les "non professionnels" de se les procurer.

    Le résultat des courses, c'est que, bien que l'on trouve des professionnels qui n'ont pas forcément compris toutes les arcanes de la conception et / ou de l'algorithmie ou qui ont galèré pour pour les assimiler, on trouve également bon nombre de gens qui pensent que "programmer, c'est aussi facile que d'utiliser le PC" et qui font n'importe quoi...
    donc critiquer , remettre en question l'existant et bien sur dans le but d'évolution est quelque chose qu'on a vraiment besoin en C++, et si des fois je donne l'impression de provoquer la communauté j'espère que ça soit compris dans le bon sens
    J'aurais envie de dire
    la critique est facile, l'art est difficile
    Oui, la critique est nécessaire et utile pour de permettre aux gens de se remettre en question ou de leur donner des idées afin de changer de point de vue...

    Mais uniquement si elle est constructive. C'est à dire si:
    • elle propose des alternatives
    • elle évite de "tout mettre dans un même panier"
    • elle fait preuve de suffisamment de modération pour prendre les exceptions en compte
    • elle est suffisamment peu agressive pour ne pas "bloquer" les gens à qui elle s'adresse
    • l'argumentation qui la soutient est honnête et cohérente
    Je comprend la critique que tu essaye de faire ici, et j'admets que l'on trouve des gens pour qui la conception est "secondaire" (pour ne pas dire inutile), mais tes critiques ne respectent aucun des points ci-dessus, ce qui fait qu'il est difficile d'avoir une discussion sereine à te lire
    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

  11. #91
    Membre éclairé 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
    Points : 845
    Points
    845
    Par défaut
    Citation Envoyé par Issam_Lahlali Voir le message
    et j'espère qu'un jour on aura des interfaces standards pour toute la couche technique mais des implémentations différentes.

    par exemple avoir IWindow,IFile et autre qui contiennent tout ce qu'il faut comme méthodes nécessaires et chaque boite implémente a sa sauce, QT, Microsoft et autre.
    C'est déjà le cas, et il s'agit de la STL.
    Biensûr, il n'y a pas de "IWindow" parce que le domaine d'application du C++ est plus vaste que celui d'un GUI.

    Le c++ est intrinsèquement complexe pour des raisons historiques (proche du hardware, du C, don't pay for what you don't use (tm) et compagnie) et de part sa profonde raison d'être: résoudre une palette de problèmes très différents. L'absence d'homogénéité quant à la conception des "résolutions de problèmes" est une résultante directement corrélée à la nature même du c++: y a pas de direction privilégiée, si ce n'est que toutes les features du langage doivent s'imbriquer correctement (un tour de force). Ca laisse la porte ouverte à tout et n'importe quoi, et parfois le meilleur (notamment ce qui a été "découvert" à posteriori, genre la meta prog). C'est ce qui fait le charme du c++ je dirais

  12. #92
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Mais uniquement si elle est constructive. C'est à dire si:
    • elle propose des alternatives
    • elle évite de "tout mettre dans un même panier"
    • elle fait preuve de suffisamment de modération pour prendre les exceptions en compte
    • elle est suffisamment peu agressive pour ne pas "bloquer" les gens à qui elle s'adresse
    • l'argumentation qui la soutient est honnête et cohérente
    Je comprend la critique que tu essaye de faire ici, et j'admets que l'on trouve des gens pour qui la conception est "secondaire" (pour ne pas dire inutile), mais tes critiques ne respectent aucun des points ci-dessus, ce qui fait qu'il est difficile d'avoir une discussion sereine à te lire
    pour le premier point d'alternatives je viens juste d'en proposer une avant ce post il s'agit d'homogénéisation de librairies et bien sur d'autres avant.

    pour le 2eme point de "tout mettre dans un seule panier" je critiquais surtout un moment MFC mais d'un autre coté je disais que QT,Boost, STL c'est bien.

    pour le 3eme point "elle fait preuve de suffisamment de modération pour prendre les exceptions en compte":prendre les exceptions en compte oui mais pas si les exceptions deviennent la règle.

    pour le 4eme point "elle est suffisamment peu agressive pour ne pas "bloquer" les gens à qui elle s'adresse": je considére que j'etais non agressive malgré qu'il y avait acharnement dés le départ sur mes posts mais j'essaye d'éviter les discussions d'accusations.


    et pour le dernier point "l'argumentation qui la soutient est honnête et cohérente": au moins j'essaye de donner des arguments qui peuvent être fausses mais ça reste un point de vue quand débat pour trouver des solutions et certainement personne n'a une bague magique et j'aimerais bien voir des propositions plus de critiques sans aucun argument pour avancer.

    Et encore une fois arrêter la critique on veut des propositions et comme t'a dis c'est facile de critiquer alors passons aux propositions, si mes propositions ne sont pas convaincantes que les experts c++ proposent d'autres

    Mais il faut au moins admettre qu'il y a des changements a faire et éviter de dire tout le temps qu'il n y a aucun problème en C++

  13. #93
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par metagoto Voir le message
    C'est déjà le cas, et il s'agit de la STL.
    Biensûr, il n'y a pas de "IWindow" parce que le domaine d'application du C++ est plus vaste que celui d'un GUI.
    la stl ne couvre qu'une partie de la couche technique, ça sera bien d'avoir une normalisation d'interfaces représentant la majorité de la couche technique ça peut faciliter pas mal de chose.

  14. #94
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Et encore une fois pour rester dans le concret et donner des propositions voici quelques conseils basiques a suivre pour simplifier le développement et c'est a enrichir par les experts.

    - éviter tout couplage fort entre les classes métiers et les couches techniques, essayer de les laisser juste sous forme de POCO cad des classes avec des types simples.

    - commencer a tester ces classes metiers indépendamment du reste du projet, ça accéléré le temps de test.

    - essayer au maximum de modulariser le projet et penser aux composants ça permet de faire plus d'abstraction et d'isoler les fonctionnalités pour avoir un couplage plus faible, pour cela penser aux contrats cad en terme de classes de bases purs.

    - penser aux contrôleurs pour les uses cases , pour isoler la logique de collaboration entre classe dans un seul endroit pour un use case donné.

    - penser dés le depart que votre code peut être après utiliser dans plusieurs contextes Web,Desktop,... ca vous obligent dés le départ a faire un couplage faible avec les couches techniques.

    - essayer de découvrir les nouveaux concepts de UML 2 concernant l'architecture par composant en utilisant les points de connexions, vous aller voir c'est plus puissant que la POO , ça la complète d'une manière très positif.

    - si vous rencontrer un problème technique très compliqué penser toute de suite a faire une abstraction pour que le reste de l'équipe ne passe pas trop de temps sur le même souci et surtout ça éviterait les copier-coller.

    - si vous être amener a utiliser une technologie comme COM ou Corba ne jamais commencer par les implémenter en premier , vous risquez d'avoir un couplage fort avec tout le projet et vu leur complexité vous passerez plus de temps a batailler avec ces 2 technos, et considerer les classes couplés avec ces technos juste comme des adaptateurs ni plus ni moins qui ne contiennent aucune logique metier.


    et bien sur j'invite tout le monde a critiquer ou enrechir cette liste pour eviter les discussions sans issu.

  15. #95
    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
    Points : 4 625
    Points
    4 625
    Par défaut
    Les différents types pour les chaînes, en fait, ça ne pose pas vraiment problème, puisqu'on peut parfaitement écrire du code manipulant des chaînes indépendamment du type utilisé, et ce de diverses façons.
    C'est aussi vrai dans une certaine mesure pour toute séquence.

    En fait, en C++, on n'est pas autant limité par des types avec lesquels il faut s'interfacer qu'avec un langage comme Java, puisqu'on peut travailler sur le plan structurel et faire de la modélisation rétro-active au besoin.
    Boost ftw

  16. #96
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par loufoque Voir le message
    Les différents types pour les chaînes, en fait, ça ne pose pas vraiment problème, puisqu'on peut parfaitement écrire du code manipulant des chaînes indépendamment du type utilisé, et ce de diverses façons.
    On peut le faire dans du code prévu pour et tant que ces types se ressemblent beaucoup.

    S'ils ne se ressemblent pas, c'est déjà plus lourd (j'avais demandé, dans un C++0x avec concepts, à ce qu'un concept String existe, et reprenne une interface assez minimaliste des chaînes, afin de faciliter ça, surtout si à terme les différents implémenteurs de chaînes fournissaient une concept_map vers ce concept).

    Et si l'on s'interface avec une bibliothèque qui n'a pas prévu ça, il faut bien mettre en place une conversion.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  17. #97
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par loufoque Voir le message
    Les différents types pour les chaînes, en fait, ça ne pose pas vraiment problème
    Comme Loic l'a déjà mentionné ça devient lourd si les types ne se ressemblent pas beaucoup et d'un autre coté si finalement ça représente la même chose pourquoi ne pas avoir une interface commune.

    et ce principe de raisonner par contrat a l'avantage d'exploiter au maximum toutes les librairies d'une manière optimale en matière de collaboration entre elles.

    je trouve qu'en c++ qu'en privilégie l'implémentation que les concepts, ce qui a engendrer une multitude d'implémentations sans aucune relation entre elles au niveau concept.

    c'est vrai que le concept est dans notre tête et on sait qu'ils sont tous des chaines de caractères mais si le concept existait réellement donc un interface standardisé de ce que doit être une chaine de caractères ça sera plus facile pour tout le monde.

    et en général cette vision par contrats on a vraiment besoin d'elle dans un monde ou il y a énormément d'implémentations, penser juste a la migration combien elle va devenir facile si on n'a pas aimer une librairie.

    Malheureusement c'est peut être trop tard pour les librairies déjà existantes, mais pas encore trop tard pour ce que nous concevons chaque jour.

    et a mon avis ce problème est du au fait qu'un développeur c++ était toujours orienté implémentation depuis le cursus scolaire, donc il pense moins au contrat.

    pour un développeur c# ou java on parle beaucoup d'interfaces dans le cursus et par exemple l'existence d'interface explicite en c# lui fait comprendre dés le départ ce que veut dire de privilégier la programmation par contrats.

  18. #98
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Peut-être que loufoque pensait à des fonctions template avec spécialisation pour les classes qui n'ont pas de operator[](unsigned), de begin() ou autre ?

  19. #99
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par Issam_Lahlali Voir le message
    pour un développeur c# ou java on parle beaucoup d'interfaces dans le cursus et par exemple l'existence d'interface explicite en c# lui fait comprendre dés le départ ce que veut dire de privilégier la programmation par contrats.
    Dans mon cours de C++, j'en parle beaucoup aussi. Et même si elles n'ont pas la même forme, je trouve les interface en c++ bien plus riches qu'en Java/C#, car elles permettent la vérification des contrats, ce qui n'est pas possible dans ces autres langages. Ce qui est d'ailleurs pour moi une sacré limitation de ceux-ci.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  20. #100
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par Alp Voir le message
    Peut-être que loufoque pensait à des fonctions template avec spécialisation pour les classes qui n'ont pas de operator[](unsigned), de begin() ou autre ?
    C'est à ça que je pensais pour ma part en tout cas. Mais ces spécialisation demande du travail, ce n'est pas directement utilisable. Et ça ne marche que dans du code à nous, pas pour coller ensemble 2 bouts de code externes qui n'auraient pas été prévus pour.

    Citation Envoyé par Issam_Lahlali Voir le message
    c'est vrai que le concept est dans notre tête et on sait qu'ils sont tous des chaines de caractères mais si le concept existait réellement donc un interface standardisé de ce que doit être une chaine de caractères ça sera plus facile pour tout le monde.
    D'où l'intérêt de mettre les concepts dans la langage. Mais il faudra encore attendre pour ça.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

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