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

Langages de programmation Discussion :

Les meilleurs programmeurs sont-ils ceux qui disent connaître C ++ ? Pas si sûr !


Sujet :

Langages de programmation

  1. #41
    Membre habitué
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2006
    Messages : 87
    Points : 144
    Points
    144
    Par défaut
    Citation Envoyé par raphchar Voir le message
    Aujourd'hui je ne peux pas envisager de créer un programme un peu complexe sans classes.
    C'est marrant, mais pour moi c'est l'inverse : à chaque fois que je programme en POO j'arrive à un code que je ne peux plus relire au bout de 1 mois, et que j'ai toutes les peines du monde à faire évoluer sans devoir réécrire des tas de coses.... Alors que je comprends toujours sans le moindre problème des dizaines de milliers de lignes de C que j'ai écrites il y a une vingtaine d'années, et que je modifie "les doigts dans le nez" un gros site (près de 10000 lignes de code) écrit en PHP 4 (totalement impératif) que j'ai repris non commenté par son auteur initial que je n'ai vu qu'une 1/2 heure avant qu'il ne parte.....

    Citation Envoyé par raphchar Voir le message
    Le C serait plus performant? Quelle importance: Les ordinateurs sont si performant (...)
    Tout dépend du résultat attendu : ce raisonnement ("quelle importance") est celui qui fait qu'aujourd'hui on trouve des "Hello World" qui ne fonctionnent pas avec moins de 2Go de RAM et un double coeur à 3GHz !

    Tout ceci n'est que "flame war" parfaitement inutile : selon son expérience, son environnement et ce qu'on veut obtenir, on DOIT changer de langage et de paradigme.
    Pour moi c'est à la capacité à pratiquer cette gymnastique qu'on reconnait les bons.....

  2. #42
    Invité
    Invité(e)
    Par défaut
    Là, je suis bien d'accord, mais est-il interdit de faire de la programmation orientée objet (bien) structurée?
    Je vais même aller plus loin, le fameux goto, tant décrié, ne peut-il pas dans certains cas être bon à utiliser. D'ailleurs, le compilateur de Borland force à respecter l'organisation structurée du programme.
    Quand j'écris un programme, je ne me pose pas la question C ou C++, structuré ou orienté objet, structure ou classe, objet ou pas, mais je me demande comment je vais le faire et j'utilise les outils que je connais et qui me semblent le plus adaptés pour l'écrire. Il est vrai que je suis de la vieille école autodidacte en informatique.

  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
    Le but de l'orienté objet est justement de faire du code maintenable et qui peut évoluer facilement. Arriver à l'inverse, c'est quand même fort.

  4. #44
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 056
    Points
    32 056
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    Le but de l'orienté objet est justement de faire du code maintenable et qui peut évoluer facilement. Arriver à l'inverse, c'est quand même fort.
    ???

    J'ai vu de tout dans ma carrière, du procédural très maintenable, et de l'objet inmaintenable. Comme l'inverse. L'objet a de nombreuses qualités, il permet certaines astuces impensables en procédural, mais tout ce qui est fait en objet peut être fait en procédural. Proprement. Ca sera parfois un poil plus lourd, mais c'est tout.

    Après, la rigueur et l'expertise sont les clefs d'une programmation maintenable. Je suis expert en procédural, pas en objet, mon code objet sera sans doute moins maintenable que mon code procédural. Evidemment, un expert objet aura le résultat contraire(et je n'aimerais pas reprendre son procédural, sans doute mal écrit).

    et puis suivant ce que l'on veut faire, c'est adapté, ou non. ici un lien vers une analyse de l'utilité de l'objet suivant les situations. Son exemple en bas de page est particulièrement parlant d'une appli objet inmaintenable là ou un bête procédural aurait été bien plus efficace(à défaut d'être élégant).
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  5. #45
    Invité
    Invité(e)
    Par défaut
    Peut-être est-ce là le cœur du sujet.
    Sauf erreur de ma part, un langage, quel qu'il soit, sert d'interface entre deux identités. Dans le cas de langage parlé ou écrit, il s'agit de deux individus. Si l'écrivain a un style parfait mais très synthétique, il ne sera compris que par lui-même et quelques privilégiés.
    Je pense qu'en matière de langage informatique, c'est un peu la même chose, si un mot (nom de classe) sous-entent des milliers de lignes de code, le pauvre développeur que je suis a un peu de mal à comprendre.
    Je fais une classe Point3D, une classe TLigne, une classe UNTRIANGLE etc. tout va bien, je m'y retrouve. Les classes définissent des objets qui ont en quelque sorte une réalité physique.
    Mais, si je fais une classe virtuelle qui représente un modèle pour pouvoir faire ou définir autre chose qui n'a rien à voir et qui sera aussi totalement abstrait, là je suis un peu perdu.
    Je prends un autre point, l'héritage. Soit une classe POINT. Elle aura comme membre prive X, Y, et quelque fonction publiques.
    On veut créer une classe Point2D. On la fera hériter de POINT, on rajoutera des membres privés tels que la date de création et quelques fonctions.
    Maintenant on veut travailler en 3D. On va créer une classe Point3D qui héritera de Point2D etc.
    C'est très puissant, mais est-ce bien la bonne méthode pour un développeur?

    Je me souviens que l'héritage multiple était prévu autrefois. On a supprimé cette possibilité, il doit bien y avoir une raison.

    Je le reconnais volontiers, je travaille en C dans un environnement C++ et j'utilise certaines possibilité du C++, les classes en particulier, mais l'abstraction s'arrête là.

    Autre exemple, j'ai une classe VECTEUR. J'espère que je n'aurai jamais à y mettre le nez.

  6. #46
    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
    Ecoutez, je ne vais pas vous faire l'article sur comment le C++ c'est trop bien, ou comment le code orienté objet a amelioré la conception de logiciels.

    Chacun son truc hein Mais ce n'est pas parce que vous ne voyez pas d'intérêt à certaines techniques que ça n'est pas utile (oui je sais ce n'est aps exactement ce que vous avez dit).

    Perso quelqu'un qui dans mon équipe en C++ commence à me coder tout en procédural tout en redefinissant sa classe VecteurMaison, ça va pas trop bien se passer.

  7. #47
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 056
    Points
    32 056
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    Ecoutez, je ne vais pas vous faire l'article sur comment le C++ c'est trop bien, ou comment le code orienté objet a amelioré la conception de logiciels.

    Chacun son truc hein Mais ce n'est pas parce que vous ne voyez pas d'intérêt à certaines techniques que ça n'est pas utile (oui je sais ce n'est aps exactement ce que vous avez dit).

    Perso quelqu'un qui dans mon équipe en C++ commence à me coder tout en procédural tout en redefinissant sa classe VecteurMaison, ça va pas trop bien se passer.
    Mais ça, ça dépend de ton besoin. Dans les environnements ou moi je bosse, je sais pertinement que l'objet aurait des conséquences néfastes. Je sais aussi que mon cas n'est pas une généralité.

    En outre, si moi je suis recruté dans ton équipe, je serais tenu de me plier aux normes locales. Qui, je l'espèrent, incluent l'usage des classes existantes au lieu de réinventer la poudre. Ici, celui qui code son propre module de traitement de date va se faire taper sur les doigts. C'est du respect des normes, c'est obligatoire. Il m'est quand même arrivé de coder objet, tu sais. Et j'ai apprécié.....parceque l'environnement s'y prétait. Parceque l'architecture de base n'était pas susceptible de changer du tout au tout du jour au lendemain. Parceque les formats de données étaient stables. Et surtout parceque le polymorphisme réglait d'un coup de baguette magique tous nos problèmes, ou presque. Ce qui n'est pas vrai partout, loin s'en faut.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  8. #48
    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 : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par iznogoudmc Voir le message
    Comme d'habitude, on oppose ou on compare C et C++ alors que ce qui devrait être comparé c'est la programmation impérative (ou structurée) et la POO....
    Le C++ ne se réduit pas à la POO. IL est multi-paradigme (impératif, POO et métaporg).
    Et il n'est pas rare de mixer les différents paradigmes dans un même programme.

    Citation Envoyé par Pierre Dolez Voir le message
    Je me souviens que l'héritage multiple était prévu autrefois. On a supprimé cette possibilité, il doit bien y avoir une raison.
    L'héritage multiple n'a pas été supprimé en C++.

  9. #49
    Invité
    Invité(e)
    Par défaut
    Je reviens sur ce sujet parce qu'il me parait vraiment important en ce sens que la notion d'objet et son utilisation tend à modifier notre façon de penser. Je vais prendre deux exemples, dans le domaine de mes connaissances, le graphisme utilisé dans la représentation du terrain, en autres le SIG.

    1- un point est un support. Si un point n'a pas d'altitude, n'est le point de rattachement d'aucun symbole (objet), n'est le point de passage (ou centre etc.) d'aucun ligne, ou toute autre utilisation, il ne représente rien. Un centroïde est "une sorte de centre d'une zone". Dans la pratique le centroIde d'une zone sera généralement le centre de gravité, c'est à dire le barycentre avec un poids égal pour tous les points. A l'occasion de traitement (assez élémentaire d'ailleurs) j'ai vu utiliser le centroïde d'une ligne, non fermée, et même le centroïde d'un point, c'est à dire naturellement le point lui même

    2- On peut lire aussi le terme d'"isoligne". Dans la pratique, il s'agit tout simplement d'une courbe de niveau. Outre le fait que ce terme est un pléonasme, ou ne veut rien dire, puisque toute ligne, étant définie par les points qui la constitue, est une isoligne. On m'a même assuré que bientôt on parlerait d'"isocourbe", ce qui sous-entendrait qu'une courbe n'est pas une ligne, ou au contraire, un objet d'un niveau supérieur à la ligne. Pour parler POO, qui hérite de l'autre?

    Dans les deux cas, il ne s'agit pas d'influence de la langue anglaise, puisque ce sont des termes exclusivement français.

    Je crains qu'un excès de volonté de normalisation, c'est à dire en l'occurrence le désir de vouloir ramener tout élément à un objet précédemment défini risque de faire perdre la notion des réalités des choses.
    Application : une isobathe (courbe de niveau sous le niveau de la mer) est-elle une isoligne avec une altitude négative? Une courbe d'égal temps de concentration (ligne d'isoécoulement) ne peut pas être une isoligne, puisqu'une isoligne est une courbe de niveau etc.

    Chose curieuse, la structure des fichiers SHP me parait tomber dans un excès inverse, c'est à dire qu'il y a plusieurs noms pour des éléments semblables. Est-ce à cause de l'ancienneté?

  10. #50
    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
    Citation Envoyé par Pierre Dolez Voir le message
    a- Je prends un autre point, l'héritage. Soit une classe POINT. Elle aura comme membre prive X, Y, et quelque fonction publiques.
    On veut créer une classe Point2D. On la fera hériter de POINT, on rajoutera des membres privés tels que la date de création et quelques fonctions.
    Maintenant on veut travailler en 3D. On va créer une classe Point3D qui héritera de Point2D etc.
    C'est très puissant, mais est-ce bien la bonne méthode pour un développeur?

    b- Je me souviens que l'héritage multiple était prévu autrefois. On a supprimé cette possibilité, il doit bien y avoir une raison.
    a- C'est une mauvaise utilisation de l'héritage (public).
    Un Point2D n'est pas substituable à un Point1D, ni un Point3D à un point2D.
    Si on doit avoir des généricités algorithmiques entre les notions de points, lignes, etc, la prog générique sera bien plus adaptée.

    b- Il est fréquent que des standards de codage l'interdisent. Les développeurs qui comprennent le LSP sont rares (cf mon point a-), or sans cette compréhension, les chances que l'héritage multiple soit utilisé à bon escient sont minces. Et pourtant, c'est un excellent outil quand une classe doit implémenter plusieurs interfaces ; en C++ combiné au pattern NVI il nous permet même de faire de la programmation par contrat.


    Sinon, +1 à ce qu'a dit gl -> le C++ est multiparadigmes.
    Aspect qui rejoint totalement la courbe de compréhension quand on fait le rapproche avec comment il est abordé/appris/...
    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...

  11. #51
    Débutant
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Points : 176
    Points
    176
    Par défaut
    Citation Envoyé par gl Voir le message
    Le C++ ne se réduit pas à la POO. IL est multi-paradigme (impératif, POO et métaporg).
    Et il n'est pas rare de mixer les différents paradigmes dans un même programme.
    cite moi un langage qui soit POO et pas impératif ?

  12. #52
    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 guillaume07 Voir le message
    cite moi un langage qui soit POO et pas impératif ?
    Remplace impératif par procédural dans la quote de gl

  13. #53
    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
    [@metagoto] Cela ne fait pas une grosse différence dans ce contexte,

    [@guillaume07] mais ... on pourrait parler de CLOS il semblerait. Mais, ce qu'il faut surtout lire, c'est qu'il n'est pas limité au paradigme OO grâce aux templates.
    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. #54
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Personnellement, je crois que C++ est un langage qui permet de tout faire, en alliant performance et réutilisabilité. La mauvaise nouvelle, c'est que pour y arriver, il va falloir accepter de passer un bon bout de temps dans les bouquins, et aussi à expérimenter par soi-même.
    Le C++ est muti-paradigme, c'est à dire qu'un problème peut être modélisé de différentes façons. En gros, ce que les programmeurs utilisent:
    • L'orienté objet, avec des abstractions qui modélisent un objet "haut niveau"
    • La métaprog, avec les classes de politique notamment (modélisation de comportement)

    Citation Envoyé par Luc Hermitte Voir le message
    C'est une mauvaise utilisation de l'héritage (public).
    Comme l'a fait remarqué Luc, avant de maîtriser les concepts précédemment cités correctement, beaucoup d'eau aura coulé sous les ponts. Et on n'a pas encore parlé d'exception-safety (vaste sujet), ou même de thread-safety (hors sujet ici).

    En passant, cette citation de Joel on software est intéressante:
    The recruiters-who-use-grep, by the way, are ridiculed here, and for good reason. I have never met anyone who can do Scheme, Haskell, and C pointers who can't pick up Java in two days, and create better Java code than people with five years of experience in Java, but try explaining that to the average HR drone.
    Récemment, j'avais présenté mes langages de programmation par ordre de niveau :
    • C++ : très bon niveau (grâce à DVP il faut le dire)
    • C : niveau moyen
    • Python : niveau moyen
    • Java : notions. J'avais juste lu le bouquin Design Pattern de l'édition Tête la Première. Et tous les exemples sont en java. Personnellement, ça ne m'avait pas du tout dérangé, le "look" général était pas très différent du C++, en plus simple !

    Et là, le type me dit : "Dommage nous c'est du java, que ce soit pour du temps-réel embarqué ou les logiciels".
    J'avais bien envie de dire que, derrière le C++ j'allais apprendre super vite (mise à part les bonnes pratiques du langage où il faut un peu plus de temps).

    Mais est-ce vrai ?

  15. #55
    Membre éclairé Avatar de Camille_B
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2006
    Messages : 212
    Points : 673
    Points
    673
    Par défaut
    parce que c'est juste facile après le C++.
    C'est "juste" faux.

    Il est clair que la maîtrise d'un langage comme C++ ou Perl facilite l'apprentissage d'un langage comme Java, ou même Python.

    Mais il y a une différence entre apprendre rapidement un langage, et :

    a) maîtriser les bibliothèques

    b) acquérir les bonnes pratiques spécifiques à ce langage

    P.S. : cette utilisation de "juste", c'est "juste" horrible !

  16. #56
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Camille_B Voir le message
    P.S. : cette utilisation de "juste", c'est "juste" horrible !
    C'est juste.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  17. #57
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par guillaume07 Voir le message
    cite moi un langage qui soit POO et pas impératif ?
    Smalltalk.

    Les meilleurs programmeurs sont-ils ceux qui disent connaître C ++ ?
    Faut voir l'intérêt de la question, d'autre part je n'ai jamais vu de comparaison de deux développeurs qui se baserait sur le langage utilisé.
    [|]

  18. #58
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut
    Les meilleurs programmeurs sont-ils ceux qui disent connaître C ++ ?
    Vraiment cette question idiote mérite un réponse idiote: un bon chauffeur de ferrari est-il celui qui a une ferrari? (oups pardon c'est une question)

    Un bon programmeur, c'est celui qui sait utiliser des algorithmes efficaces avec les moyens qu'il a. C'est tout.
    Raphchar.

  19. #59
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Je vais ajouter une petite réponse. Je ne suis pas programmeur, mais je développe depuis de nombreuses années. C'est à dire que j'essaye de répondre à mes besoins, historiquement aux besoins de la société qui m'employait. Maintenant, je suis en retraite.
    A mon avis un programmeur travaille dans un environnement hiérarchisé. Il y a un chef de projet qui, à la limite, n'a jamais écrit une ligne de code, mais il a une logique implacable, un développeur qui essaye de faire la liaison entre le chef de projet et le programmeur, et enfin le programmeur.
    Que vient faire dans tout cela le langage utilisé ?, je le compare un peu à la couleur du manche de tourne-vis d'un mécanicien.

    J'utilise un compilateur qui permet d'écrire des outils qui me conviennent (CAD-DAO-SIG). Je viens de comprendre que le C++ que j'utilise n'est pas standard. Pourquoi Borland a éprouvé le besoin de faire un langage qui ne respecte pas, ou plutôt qui surcharge le C++ standard? Cela ne me regarde pas, je suis développeur, donc j'utilise un langage créé par des spécialistes bien meilleurs que moi.
    Petit exemple simple : traitement d'une chaine.
    Le C contient un certain nombre de fonctions de traitement (strcpy, strcat etc. il y en a des quantités).
    Le C++ contient une classe std::string (que j'ai découverte aujourd'hui).
    Je suppose que si Borland a créé une pseudo-classe AnsiString, c'est parce que c'était utile aux développeurs. Avec les fonctions de base du C on peut traiter toutes les chaines comme on veut. AinsiString offre un confort supplémentaire, mais il ne s'agit toujours là que de la couleur du manche de tourne-vis et ça ne va pas plus loin.

    L'argument de portabilité ne me convient pas vraiment. Je pense en particulier à un certain applicatif qui a subit un grand nombre de transpo depuis 25 ans et qui tourne actuellement entre autres en PHP.
    Il est vrai que la syntaxe d'une boucle en Fortran, en basic(s) en C(UNIX) en C++(Borland) en PHP, n'est pas la même, mais qu'importe, la logique reste le même.

    Ce qui a provoqué cette réponse sont les questions posés par les étudiants. Je crains qu'on leur apprend plus des astuces du langage que l'organisation d'un applicatif (par exemple qu'il est indispensable d'éviter une division par 0).

    Bonne soirée.

  20. #60
    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 : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Que vient faire dans tout cela le langage utilisé ?, je le compare un peu à la couleur du manche de tourne-vis d'un mécanicien.
    J'admets volontiers que le langage n'est pas le point le plus important et que le codage ne représente qu'une faible partie d'un projet. Mais de là à le comparer à la couleur d'un manche de tournevis, il y a un pas que je me garderais bien de franchir. Le langage utilisé n'est pas aussi anecdotique que cela.

    Pour résumer, la langage est peut-être un détail (et encore) mais pas un détail sans importance.

    Citation Envoyé par Pierre Dolez Voir le message
    Je suppose que si Borland a créé une pseudo-classe AnsiString, c'est parce que c'était utile aux développeurs.
    Je ne connais pas l'histoire de Borland C++ en détail, mais je miserais surtout sur des raisons historiques (concernant l'existence de AnsiString alors qu'il existe std::string. Pour l'existence de AnsiString par rapport au chaîne C-style et aux fonctions str..., oui il y avait une vrai utilité).

    Citation Envoyé par Pierre Dolez Voir le message
    Avec les fonctions de base du C on peut traiter toutes les chaines comme on veut. AinsiString offre un confort supplémentaire, mais il ne s'agit toujours là que de la couleur du manche de tourne-vis et ça ne va pas plus loin.
    Ce n'est pas qu'une affaire de confort. C'est aussi un temps de développement réduit, moins de risque d'erreur (et potentiellement de meilleures performances).

    Citation Envoyé par Pierre Dolez Voir le message
    L'argument de portabilité ne me convient pas vraiment. Je pense en particulier à un certain applicatif qui a subit un grand nombre de transpo depuis 25 ans et qui tourne actuellement entre autres en PHP.
    As tu une idée des coûts du portage ou de réécriture d'une application dont la portabilité n'était pas une préoccupation lors de l'écriture initiale ? Ou des coûts de maintenance de n versions différentes par rapport à ceux d'une seule et unique version portable ?

    Citation Envoyé par Pierre Dolez Voir le message
    Il est vrai que la syntaxe d'une boucle en Fortran, en basic(s) en C(UNIX) en C++(Borland) en PHP, n'est pas la même, mais qu'importe, la logique reste le même.
    Oui et non.

    Il y a quand même des différences fondamentales entre les différents paradigmes de programmations (procédurale, orienté objet, fonctionnel, logique, méta-prog, etc.). De même que certaines caractéristiques des langages représentes une vrai difficulté à passer de l'un à l'autre.

    Citation Envoyé par Pierre Dolez Voir le message
    Ce qui a provoqué cette réponse sont les questions posés par les étudiants. Je crains qu'on leur apprend plus des astuces du langage que l'organisation d'un applicatif (par exemple qu'il est indispensable d'éviter une division par 0).
    J'ignore si c'est du à l'enseignement ou pas. Mais c'est vrai que certains se préoccupent davantage du codage et des détails du langage que de l'analyse et de la conception, ce qui est regrettable.

    Ceci étant, je ne trouve pas choquant de poser des questions sur le langage si on rencontre des difficultés lors de l'implémentation.

Discussions similaires

  1. Pourquoi les programmeurs sont-ils moins payés que les gestionnaires de programmes et les analystes métiers ?
    Par Hinault Romaric dans le forum Débats sur le développement - Le Best Of
    Réponses: 107
    Dernier message: 26/11/2014, 23h40
  2. Réponses: 0
    Dernier message: 01/04/2010, 23h57
  3. Réponses: 3
    Dernier message: 27/04/2007, 10h56
  4. Pourquoi les mails ne sont ils pas envoyés?
    Par Sunsawe dans le forum Développement
    Réponses: 3
    Dernier message: 13/04/2007, 00h49
  5. Les drivers ODBC sont-ils nécessairement payants ?
    Par Draekonyss dans le forum 4D
    Réponses: 5
    Dernier message: 20/04/2006, 19h50

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