Salut!
J'approuve le point d'interrogation, car bien programmer peut être un art.le côté art en moins ?
Jean-Marc Blanc
Salut!
J'approuve le point d'interrogation, car bien programmer peut être un art.le côté art en moins ?
Jean-Marc Blanc
Torvalds n'a jamais été un dieu de la communication. Sa querelle avec Andrew Tannenbaum à propos de Minix, ses propos sur la GPL v3, sur SVN, sur Gnome ou sur Sun ont déjà défrayé la chronique. Personne n'est parfait...
Ce que je vais dire ne va ptet pas vous plaire mais c'est pas grave
Je suis assez d'accord avec lui. C++ est un langage formidable, mais il est difficile. Du coup j'ai vu souvent du code merdique fait par gens qui pensaient qu'avec C++ leur application serait plus rapide alors qu'ils auraient codé 3x plus vite en C# ou en java et auraient pu maintenir leur application.
Quand je dis que C++ est difficile, c'est parce qu'il cumule les difficultés du C (pointeurs, bas niveau, static ...) et une librairie standard de plus en plus immense.
En guise de modération de mon propos, je dirais que je préfère C++ à C car ses possibilités sont plus larges pour une perte de performance minime (en fait inexistante sur la plupart des cas)
Tutoriels OpenGL
Je ne répondrai à aucune question en MP
- Si c'est simple tu dis que c'est compliqué et tu le fait
- Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.
oui, cela commence à devenir lassant. Au point que je me demande si toutes ces réflexions ne visent rien d'autre que faire de la com'.
Je suis un peu du côté de Linus. Le C++ est très puissant, mais donne la possibilité de faire des choses immondes. Au même titre que Php, c'est simplement des mathématiques : il y a plus de personnes mauvaises et incompétentes (et encore je ne parle pas de l'offshore) que de personnes capables d'écrire du code simple et lisible.
Donc mathématiquement : on a en moyenne beaucoup plus de code pourri et très dur à lire en C++ (= comme en Php), qu'on a du bon code clair et lisible.
Donc il y est allé un peu fort, mais je comprends son point de vue : qui peut le plus peut le moins, et avec les développeurs d'aujourd'hui on a souvent plus de moins que plus de plus.
...
Quoi je suis pas clair ?![]()
Mathématiquement, si la plupart des dévelopeurs faisaient du C, C serait le language où il y aurait le plus de code merdique.
Ca n'a aucun sens tes "mathématiques"
Sérieusement, poster ce mail encore une fois n'avait pour but que de relancer un peu des discussions vides?
Avec quel plaisir ai-je lu cet article ! Enfin une notoriété qui ose dire la vérité ! Qui sort du placard, pour utiliser une formule à la mode.
Je suis d'accord qu'en fait sa sortie vise surtout la "religion" OOP, car c'est bien là la différence fondamentale entre C et C++. Je dis (et je maintiens) "religion", car l'engouement pour ce langage en présente bien toutes les caractéristiques.
C a des défauts, certes, mais C++ les accumule, les transcande, les sublime !
Les adeptes de C++ vous répèteront ad nauseam que l'avantage de l'OOP, donc C++, est que vous pouvez « réutiliser le code ». Voyons don ! Mais qu'est-ce qu'ils s'imaginent ? Quelle supercherie, bull shit pour reprendre l'expression de Linus. Depuis la préhistoire de la programmation on « réutilise le code », l'OOP n'a rien apporté de plus. Cette légende est en fait colportée par les jeunes qui n'ont pas connu d'autres langages et qui se figurent que l'OOP a apporté quelquechose de ce côté. Foutaise ! Même en programmant en Assembler on réutilise du code. Voyons don !
J'ai développé au début des années 70 (FORTRAN et Assembler) un système permettant de produire des films d'animation par ordinateur sur une machine qui contenait 28k de mémoire ! Croyez-vous qu'on y serait arrivé si on n'avait pas pu « réutiliser le code » ? Foutaise !
Quant à Java, n'en parlons pas, il a éliminé la plus grande trouvaille de l'évolution des langages de programmation, à savoir les pointeurs, apparus avec C, et la plus grande connerie et source de frustration : le laguage sensible à la case, également instaurée par C.
Le dernier moteur 3D digne de ce nom écrit en langage C doit-être celui de Quake III sortit en 1999, soit 12 années maintenant. John Carmack était lui aussi réticent aux changements. Malgré tout, depuis, avec Doom III puis Rage il a succombé lui aussi aux charmes du C++. Pour rester dans le domaine du jeu vidéo, comment ne pas considérer que Battlefield 3 est incontestablement un "défi moderne" ?
En fait, très peu de langages offrent un rapport performance/productivité/déploiement multi-plateforme aussi intéressant que le C++. Dans de nombreux domaines de développement logiciel à la pointe, il n'y a pas (ou peu) d'alternatives au C++ (vidéo, 3D temps réelle, logiciels scientifiques, clients lourds...).
En raccourci, actuellement, le langage C++ est le mieux armé pour faire face aux défis modernes.
J'espère que ça changera rapidement (malgré que je sois un développeur C++ passionné je pense que la productivité pourrait être largement améliorée), mais en attendant c'est une réalité.
Joli troll.
Bien essayé, mais cela se voit que tu n'y as pas touché depuis un bon petit moment.
Linus s'était mieux déguisé en sortant des termes hypes dans la communauté C++ comme bibliothèque standard ou boost.
EDIT: 100% d'accord que la réutilisation de code est la plus grosse foutaise de l'OOP. Malheureusement, les fanboys de l'époque et autres gens qui se voulaient être dans le vent n'avaient pas compris ce qu'était la substituabilité et ce qu'elle apportait. Et du coup ils colportaient des trucs à côté de la plaque -- comme s'il avait fallu avoir des objets pour faire des fonctions utilisables depuis plusieurs endroits (trop magique!) et les ranger dans des modules.
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...
Les extrêmes étant insignifiants, l'avis extrême de Linus l'est donc. N'en déplaise à son égo.
Je respecte beaucoup Mr Linus Torvalds pour ses travaux sur Linux, si c’était un débat sur les systèmes d’exploitation son point de vue serait plus bénéfique et objectif. Mais parler sur les langages de programmation et la POO, je crois que l’avis d’un expert comme Mr Anders Hejlsberg sur C++ ou tout autre langage aura plus de poids et d’objectivité.![]()
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ce que je voulais dire c’est que Mr Anders Hejlsberg est bien placé pour parler sur les langages de programmation et de la POO en particulier. Et je sais que c’est le père de Delphi et C# et avant eux, du célèbre Turbo Pascal que beaucoup de programmeurs se sont initiés à la POO en l’utilisant.![]()
He bien moi je me considère entre les deux:
Je suis un vieux programmeur ( 18 ans de passion `derrière la cravate` ).
Je suis accroché au vieux style procédurale et pseudo-objects sous les
struct->fun_ptr(...)
et en même-temps, quelques puissantes constructions du c++ (libsigc++), operator overload ..etc..
J'ai le meilleurs des deux mondes, sans plonger dans le c++ extrême ( abus des templates!!! (boost), ( utilisateur du libstdc++ sans plus car je ne fais aucun usage de leurs templates en tant que base de mes classes).
Mon expérience avec le cannal irc: #c++ est très descriptif de la pensée de Mr. Linus Torvalds : Du monde bizarre...
Bref, je code en c++ comme un vieux programmeur C :-)
-----------
Qt: Je trouve que Qt utilise le c++ a merveille! Mais juste un point qui me titille:
Ils auraient dû prendre l'idée de libsigc++ au lieu de se torturer avec leur moc ( Meta-Object-Compiler) qui fourre les MACROS de preprocesseurs partout et y genère du code que je ne peux contrôler....
Linus Torvald est extrémiste dans ces propos et ceux que je peux lire le sont malheureusement beaucoup aussi.
Coté dev système, et je parle d'implémentation d'OS, de driver ou tout ce qui est bas niveau le C est LE langage de référence, rien de nouveau jusqu'ici.
Ensuite coté dev applicatif, framework et autre le C++ se retrouve être plus adapté et dispose de bien plus de librairie.
Le modèle d'un langage ne définit ni sa qualité ni s'il est bon ou pas; tout dépend de ce qu'on veut réaliser, de ces connaissances et de son désir d'utiliser un langage ou un autre.
Pour ma part je dirai qu'un bon développeur connait plusieurs, voir même pas mal de langage et qu'il sait choisir le plus adapté à une situation donnée ... j'ai eu l'occasion de développer des projets utilisant ensemble aussi bien C, C++ et python et bash que C, C++ et Java ... ou encore C et .NET et j'en passe ...
Je crois personnelement que c'est un peu extremiste de la part de Mr Linus Torsvald nous reconnaissons en lui un pionnier mais aussi reconnaissons que le c++ a bcp transformer le monde du developpement. Mais je ne suis pas developpeur C++.
Merci à tous
Java a aussi :
- permis de savoir où un "pointeur null" est utilisé (callstack des exceptions)
- interdit l'utilisation des pointeurs pointant dans les choux
- supprimé le cas des buffer-overflow
- fixer des conventions de codage et binaires (qui fait que l'on est pas obligé d'utiliser un magma de dépendances ingérables où chaque gugus choisi ces règles comme en C ou C++)
- ...
Après, le langage n'est pas parfait, comme tous; et les mécanismes qui y résident ont fatalement un coût sur les performances. Ensuite, ce n'est pas langage adapté a des besoins de bas niveau...
Ce qui me fait doucement rigoler, c'est que Torvald et bien d'autres ne voient pas les avantages de tels ou tels langages face aux besoins...
Entre autre pour l'introspection et la réflexion sans se palucher l'enregistrement des fonctions et propriétés des objets... On ne peut pas faire ça en C++ facilement car on a pas :
Regardez à quel point il est facile d'exposer des QObject dans QtScript, lisez les fichiers générés par "moc" et vous verrez ce à quoi vous échappez...
Code : Sélectionner tout - Visualiser dans une fenêtre à part obj.invoke( "maMethode", args )
Let's troll again.
...
Concept intéressant. Je me demande à quoi peut bien faire référence le struct kobject du kernel linux. Mais, j'y pense, peut-être que le kernel linux est très orienté objet ?
Comme le dit wikipedia, ref. nécessaire. Mais tu ne trouveras pas ces références, donc je me permet de t'interpeler sur le fait que croire à des ont-dit, c'est aussi la base des religions. En tout cas, ça ne forme pas l'esprit critique.
Ca marche aussi dans l'autre sens : C a des qualité, certes, mais C++ les accumule, les transcende, les sublime !
Maintenant, cite moi un défaut intrinsèque au langage (moi, je peux t'en citer, mais je peux aussi t'en citer pour le C ; toi j'ai l'impression que tu va avoir du mal).
Le concept est là aussi intéressant. Sous -entendrais-tu qu'il n'y a pas de librairie C++ ?
Il faut savoir ce dont on parle pour parler de réutilisation. Effectivement, dans un programme, tout n'est pas réutilisable - cependant, c'est aussi vrai en C qu'en C++. Car un programme est composé de deux parties : une partie concrète, qui fait le travail qu'on lui demande, et une partie plus abstraite, qui a pour but de mettre en place les outils pour que ce travail soit fait simplement. Le fait que le programme soit en C, en C++ ou en brainf**k ne change rien à l'affaire : tout programme possède des parties qui peuvent être généralisées, et donc réutilisées.
Au millieu des années 60, c'est cette vision qui a permis l'émergence de ce qu'on appelait à l'époque la "programmation modulaire". Un terme un peu complexe mais qui cachait quelque chose de simple : la possibilité d'écrire des modules composés de fonctions fortement couplées, présentant une interface suffisament ouverte pour remplir plusieurs missions sur un sujet convenu. C'est l'essort des bibiothèques.
Faux. Elle a apporté une autre manière de le faire, ce qui, en soit, n'est pas si mal. Il n'y a qu'à voir toutes les librairies qui sont basées sur les MFC de MS pour voir que ce paradigme a un intérêt (et faux aussi sur l'existence de la reutilisation depuis la préhistoire de l'informatique ; il a fallut attendre les premiers langages haut niveau, et les langages objet sont arrivé une dizaine d'année plus tard. On parle du début des années 70, avec Simula et Smalltalk).
...
Vu que la légende en question n'en est pas une, et que la réutilisation de code assembleur ne s'est jamais fait à l'échelle industrielle, puis-je aussi renvoyer un magistral "Foutaise !" ?
Avec le background que tu as en informatique, comment est-ce que tu peux ne pas comprendre ce qu'on apporté les langages objets ? Au delà du développement pur, il peut-être bien, de temps en temps, de prendre de la hauteur. Je n'étais même pas né en 70, et pourtant, j'ai eu le temps de le faire(*). Tu as eu 25 ans de plus que moi pour te pencher sur le problème, c'est impardonnable que tu n'ais pas réussi.
Quand à la réutilisation dont tu parles, tu fais référence à des librairies achetées sur l'étagère ? Non. Tu fais référence à des fonctions que tu as écrit toi, et que tu as réutilisé toi. Fort heureusement, au niveau industriel, le code spaghetti est mort relativement vite, c'est une bonne chose que tu n'en ai pas fait les frais à l'époque.
En quoi les pointeurs sont des entités intéressante ? (et en quoi est-ce que les pointeurs sont ils différents au niveau conceptuel des @ mémoire utilisées en ASM ? le premier dérivant directement du second, comment peut-on dire que les pointeurs sont une invention du C ? Et si tu parles de langages de haut niveau, alors il manque encore quelque chose : comment expliquer que le Pascal, datant de 1970, possède aussi des pointeurs qui auraient été inventé pour le C en 1972 ? Fin de la parenthèse).
Les pointeurs ne sont que des outils, triviaux, et ce n'est pas une trouvaille. Le fait de proposer un langage qui n'a pas besoin de ces outils n'est pas un mal : Java propose d'autres moyens pour travailler sur des zone mémoire, et il n'y a aucun besoin de pointeurs dans ce langage. En quoi est-ce un mal ? Est-ce vexant à ce point de ne pas être capable de planter une machine sur un mauvais accès mémoire ? J'ai beau réfléchir, je ne vois pas l'ombre du début d'une bonne raison à cela.
Quand à la sensibilité ou non à la casse, mon dieu, quelle horreur ! Pour un peu, certains aurait presque osé demander aux programmeurs de suivre à la lettre une syntaxe rébarbative pour écrire du code ! Il l'ont fait ? Ah bon.
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.
Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.
Partager