Pages : 1
#1 Le 04/10/2011, à 23:28
- Hibou57
C++ : quelle horreur !
Bonsoir,
Je vous invite à lire What's wrong with C++?, une page de blog écrite par un pratiquant du C++, ayant assisté à une conférence sur le C++. Ce qu'il dit en dit déjà long, mais le plus tordant, … ou plutôt ce qui donne le plus envie de pleurer, reste à venir, dans le premier et le second commentaire à son billet.
Je cite
Anonymous said...
"One of the big issues was the extreme difficulty of parsing C++."
It is ___provably___ impossible to write a correct C++ parser which will complete compilation with either success of failure because the C++ template system is Turing complete. This means that code generation is based on a turing complete program. Code generation in C++ isn't based on a program description, but an actual turing complete program.
As such, it is subject to the halting problem. Therefore, it is unknowable whether a compilation will complete, and unknowable if you are looking at a valid C++ program.
Comment peut-on prendre au sérieux un langage, dont on est même pas sûr que ces sources soient compilable ou pas. Et si on y ajoute les macro et le système des includes, on a pas fini de pleurer ou de plaindre ceux qui ont à se coltiner ça.
Pire encore, non seulement le processus de compilation est un problème en lui même, qui peut être aussi complexe que celui de l’exécution d’un programme, mais en plus il semble que les erreurs potentielles lors de ce processus, puissent être masquées, car un commentaire suivant dit :
Anonymous said...
oops, the C++ spec allows implementations to terminate compiles if they recurse too deeply. Nevermind.
N'en jetez plus, c’est du Monty Python à ce niveau là !
En plus d’avoir à traiter avec les difficulté du domaine des applications, il faut en plus traiter avec les problèmes du domaine du langage, tout aussi complexe.
Sérieusement, à moins d’être masochiste, mieux vaut passer à un langage fiable et conçu dès l’origine pour l’être (*).
(*) Je sais que ça fait peur aux gens empêtrés dans leurs habitudes, quand il s'agit d’introduire Ada, mais je leur fait deux objections. La première qui est de dire aux gens « Ada = pas d’emploi, C++/Java = des emplois à la pelle » (argument le plus souvent mis en avant), est un mensonge, parce que si c’était vrai, ça se saurait, et ensuite, ces emplois soit disant à la pelle, pour le peu qu’il y en a (dumping social et délocalisations obligeant), sont des emplois jetables, justement par l’effet du nombre,et de toutes manières, faire n’importe quoi juste pour toucher un salaire, c’est une forme de corruption. Ensuite, il faut être réaliste, on trouve sur les sites de développement, 80% de hobbyistes, et les hobbyistes ne devraient avoir que faire de ces questions, et si les hobbyistes souhaitent apprendre des choses et faire des choses pour se faire plaisir seulement, il n'ont pas besoin de reproduire les erreurs entretenues par des décideurs de sociétés informatiques peureuses et suivistes, et ne souhaitant que minimiser leur risque de perdre leur poste haut placé. Ils gagneraient plus à apprendre un langage à la fois plus fiable et plus pédagogique (la lisibilité, qui est une condition de la fiabilité, a comme effet secondaire, de rendre la langage plus pédagogique), sans se soucier ou pas de suivre la foule, puisque c’est censé être pour eux/elles‑mêmes.
Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)
Hors ligne
#2 Le 05/10/2011, à 00:34
- Pacifick_FR42
Re : C++ : quelle horreur !
Abonnement...
Hors ligne
#3 Le 05/10/2011, à 01:28
- Bousky
Re : C++ : quelle horreur !
It is […] impossible to write a correct C++ parser [because] code generation is based on a turing complete program.
« Tous les langages usuels de programmation (C, C++, Java, ...) sont Turing-complets. » Wikipedia
Popcorn !
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#4 Le 05/10/2011, à 07:09
- grim7reaper
Re : C++ : quelle horreur !
Bon j’avais promis à ma maman d’être sage, mais je ne peux pas résister alors je m’y colle.
Je vous invite à lire What's wrong with C++?, une page de blog écrite par un pratiquant du C++, ayant assisté à une conférence sur le C++.
Boarf, c’est un peu court jeune homme. J’ai déjà vu plus argumenté (je retrouve plus le lien, mais tshirtman doit bien l’avoir quelque part), là ça ressemble à : « OMG, le C++ c’est compliqué (et c’est bien vrai) : courage, fuyons ! »
Ce qu'il dit en dit déjà long, mais le plus tordant, … ou plutôt ce qui donne le plus envie de pleurer, reste à venir
Oui, la suite de ton post est assez désespérante je te l’accorde.
Ha… Pardon, ce n’est pas de ça dont tu parlais…
Je cite
Anonymous a écrit :Anonymous said...
"One of the big issues was the extreme difficulty of parsing C++."
It is ___provably___ impossible to write a correct C++ parser which will complete compilation with either success of failure because the C++ template system is Turing complete. This means that code generation is based on a turing complete program. Code generation in C++ isn't based on a program description, but an actual turing complete program.
As such, it is subject to the halting problem. Therefore, it is unknowable whether a compilation will complete, and unknowable if you are looking at a valid C++ program.
Félicitations, tu viens de découvrir que les templates en C++ sont complets au sens de Turing.
*clap clap clap*
Et en quoi c’est dramatique dis-moi ? C’est très puissant, mais comme tout outil puissant il ne faut pas faire n’importe quoi avec sous peine d’ennui.
En revanche, bien manipulé (comme le montre Andrei Alexandrescu dans Loki) c’est fort utile : métaprogrammation, typelist, classe de traits et de politique, template rebinding, etc.
Pour reprendre ta formulation : comment peut-on prendre au sérieux un langage comme l’Ada qui ne propose même pas de métaprogrammation
Comment peut-on prendre au sérieux un langage, dont on est même pas sûr que ces sources soient compilable ou pas.
Ouais, et puis les langages complets au sens de Turing c’est pas sérieux non plus hein : comment peut-on prendre au sérieux un langage dont on est même pas sûr que les programmes écrits avec vont se terminer un jour
Et si on y ajoute les macro et le système des includes, on a pas fini de pleurer ou de plaindre ceux qui ont à se coltiner ça.
C’est quoi le rapport avec la difficulté de parser du C++ ? Tu mélanges tout ou tu nous montre une fois de plus que tu parles d’un truc qui te dépasse et que tu ne comprends même pas (tes « débats » sur la GPL sont assez parlant sur ce point…) ?
Pire encore, non seulement le processus de compilation est un problème en lui même, qui peut être aussi complexe que celui de l’exécution d’un programme, mais en plus il semble que les erreurs potentielles lors de ce processus, puissent être masquées, car un commentaire suivant dit :
Anonymous a écrit :Anonymous said...
oops, the C++ spec allows implementations to terminate compiles if they recurse too deeply. Nevermind.
Mais en quoi ça masque des erreurs potentielles ?
Tu crois que si le compilateur s’arrête à cause de ça il ne va pas émettre un message d’erreur ? Pitié…
N'en jetez plus, c’est du Monty Python à ce niveau là !
J’allais le dire, faut que t’arrêtes là : je vais finir par me fêler une côte avec tes conneries
En plus d’avoir à traiter avec les difficulté du domaine des applications, il faut en plus traiter avec les problèmes du domaine du langage, tout aussi complexe.
Ha mais ça c’est sûr que le C++ est un langage complexe, et de surcroît souvent mal enseigné mais ça le langage n’en est pas vraiment responsable. C’est sûr qu’il y a des langages plus simple que le C++ et, dans certains cas, plus adapté. Mais bon, ça faut pas sortir de Saint-Cyr pour le savoir…
Sérieusement, à moins d’être masochiste, mieux vaut passer à un langage fiable et conçu dès l’origine pour l’être (*).
Ha ! Nous y voilà !
On y arrive au pourquoi du comment de ce post : vendre Ada. Ton credo.
Après avoir craché sur le C, voilà le C++. Tu nous fais le Java après ?
Alors laisse moi te dire un petit truc : ce que tu fais c’est contre-productif. Clairement, les gus comme toi (qui vomisse sur les autres langages pour refourguer leur camelote) ça me fais détester le langage avant même de le regarder plus avant. C’est con mais c’est comme ça, j’ai eu ce cas de figure pour le Python : j’ai croisé des VRP dans ton genre qui vomissait leur bile sur tout les langages autres que Python (qui était THE langage parfait pour toutes les applications). Et bah je peux te dire que j’ai pas vraiment aimé Python pendant longtemps (heureusement que j’ai croisé des utilisateurs plus sérieux depuis).
Donc si tu veux faire une bonne pub à Ada commence par te refaire une réput’ (nan parce qu’ici, au moins pour moi et je sais que je ne suis pas le seul, t’es grillé), apprends à débattre (jusqu’a maintenant tu fuis tout les sujets où tu as dis de la merde une fois qu’on t’a mit le nez dedans) et arrête de cracher sur ce qui se fait autour : ton truc est génial, et bien si c’est vrai tu dois pouvoir le vendre sans rabaisser la concurrence.
À bon entendeurs…
Hors ligne
#5 Le 05/10/2011, à 08:33
- tshirtman
Re : C++ : quelle horreur !
Non, c'est plus simple, si tu veux faire de la pub a Ada, fait une killer-app en Ada, c'est aussi simple que ça.
pour le C++ c'était la FQA C++ http://yosefk.com/c++fqa/
je suis d'accord, le C++ est une horreur, l'Ada aussi d'ailleurs le seul langage valable est Python
Hors ligne
#6 Le 05/10/2011, à 08:43
- The Uploader
Re : C++ : quelle horreur !
Nan c'est Ruby (pour Python, j'préfère un peu plus Python 3).
(et un collègue dirait "nan c'est Scala" ^^)
Dernière modification par The Uploader (Le 05/10/2011, à 08:44)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#7 Le 05/10/2011, à 08:52
- Pacifick_FR42
Re : C++ : quelle horreur !
Un prof de math m'a dit un jour... que le C++ est un langage fait pour ce tromper... (je suis débutant en c++) et qu'il préférai CAML. J'ai pas eu le temps de m'y "cogner"...
Hors ligne
#8 Le 05/10/2011, à 10:21
- grim7reaper
Re : C++ : quelle horreur !
je suis d'accord, le C++ est une horreur, l'Ada aussi d'ailleurs
le seul langage valable est Haskell
Fixed.
Hors ligne
#9 Le 05/10/2011, à 11:13
- helly
Re : C++ : quelle horreur !
tshirtman a écrit :je suis d'accord, le C++ est une horreur, l'Ada aussi d'ailleurs
le seul langage valable est Haskell
Fixed.
Rhalala .
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#10 Le 05/10/2011, à 14:03
- moths-art
Re : C++ : quelle horreur !
La n-ième promotion d'un langage par rapport à un autre : c'est fou comme les troll-récursifs sont courant chez les devs! (à croire qu'il passe plus de temps à choisir/comparer/faire la promotion d'un langage plutôt qu'à coder)
Je pense que la puissance d'un langage aussi bon soit-il :
te coule le café et te prépare à manger ... non, ça existe déjà, c'est une femme(attention, un propo misogyne qui pique les yeux et à prendre au second degré c'est immiscé dans ce post);
ne sert strictement à rien si il n'y a aucune promotion (le meilleur langage est peut-être dans une archive encore inconnu) , aucune société impliqué dedans, peu d'évolution, peu de devs compétents, pas de libs associés, peu de gros projets dev dans ce langage etc.
Définir la puissance d'un langage à sa simple structure est sans doute la plus redoutable méprise d'un débutant.
Tu as beau avoir la meilleur formule 1 dans les mains, si tu n'as pas l'expérience d'un pilote, tu n'es rien ou presque. Il te faut souvent avoir une culture informatique forte avant de dégager réellement les avantages du dis langage par rapport à un autre.
Que celui qui n'a jamais créer un code inutile car ça existait déjà et en mieux me jette le premier bouquin de C++ (en général, c'est assez gros) qu'il a sous la main.
Cela est encore plus vrai dans le libre.
Avant de créer le soft qui va renvoyer tous les autres pingouins au placard, on participe souvent à un soft existant avec ses exigences ... et son/ses langage(s) correspondants.
(et réécrire un programme stable et complet from scratch dans ton langage ne risque pas d'être une mince affaire)
Va proposer un module Ada au kernel linux : va falloir t'armer de patience avant qu'il soit intégrer au tronc.
(si tu le fais en C, ça risque d'être beaucoup plus rapide)
Le vrai développeur à mon sens à toucher à plusieurs langage et se confronter à plusieurs paradigmes.
Souvent, un langage nait suite à un manque dans un domaine, à des besoins ad-hock (ex: erlang).
Aussi, un langage ne tombe pas du ciel en révolutionnant tout sur son passage.
Il s'inspire humblement à 90% d'autres langages en améliorant certains points noté comme essentiel par le créateur. (pas de gestion de la mémoire avec un garbage collector par exemple)
Après, il va choisir son langage en fonction de son besoin et des contraintes imposé.
(pas de .net car je suis contre les applis microsoft ou php parce que mon patron ne veut pas entendre parler de ROR ou Django...)
Ada à servit à programmer ariane 5 à ma connaissance et c'est plutôt un succès.
Ca ne veut pas forcément dire que je vais créer une mini-appli gtk avec.
Perso, j'utilise pas mal python dans mes projets autours du libre.
Ce que j'apprécie :
pas de compile pour des besoins basiques, plusieurs paradigmes, une bibliothèque standard très riche, une forte communauté, la simplicité et facilité à l'interfacer avec d'autres langages (exemple : améliorer les perf
Site : https://mothsart.github.io Dépôts Git : https://github.com/mothsart PPAs : https://launchpad.net/~jerem-ferry
Hors ligne
#11 Le 05/10/2011, à 14:15
- helly
Re : C++ : quelle horreur !
Avant de créer le soft qui va renvoyer tous les autres manchots au placard, on participe souvent à un soft existant avec ses exigences ... et son/ses langage(s) correspondants.
Fixed.
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#12 Le 05/10/2011, à 14:25
- Korak
Re : C++ : quelle horreur !
Bonjour,
Quand j'ai suivi les cours de programmation (1997), on m'a appris:
1) Tu utilises le langage de programmation le plus adapté a ce que tu désires faire.
2) Tu utilises le langage de programmation utilisé dans le secteur dans lequel tu travailles (si le secteur en question a choisi tel langage, c'est qu'il y a une raison). Exemple en 1997: 80% des applications du secteur bancaire étaient développée en Cobol.
3) Tous les langages ont leurs points forts et leurs faiblesses. Donc, voir points 1 et 2.
Il me semble que 14 ans plus tard, c'est toujours d'application.
Dernière modification par Korak (Le 05/10/2011, à 14:26)
OS: Ubuntu 24.04 64 bits + Windows 11 64 bits en dualboot (BIOS UEFI, Secure Boot activé et table de partitions GPT)
PC portable HP 17-CP0308NF Processeur: AMD Ryzen 7 5700U avec carte graphique AMD Lucienne intégrée au processeur. Mémoire vive: 16 Go RAM
Quand vous ne trouvez pas la solution à un problème, cherchez des pistes menant à la solution !
Hors ligne
#13 Le 05/10/2011, à 14:54
- claudius01
Re : C++ : quelle horreur !
Bonjour,
Pour ceux qui ne connaissent pas déjà (statistiques parmi tant d'autres - cf. le second lien pour les règles du jeu):
TIOBE Programming Community Index for September 2011
TIOBE Programming Community Index Definition
Cordialement, A+
--
Claudius
Hors ligne
#14 Le 05/10/2011, à 15:23
- moths-art
Re : C++ : quelle horreur !
claudius :
Les statistiques, c'est bien mais ça ne fait pas tout.
Là, en l'occurrence, c'est basé sur les recherches sur Internet concernant le langage.
Ben, moi je prend les choses à contre-pied :
Quand on a tous les outils sous la main pour programmer, on va de moins en moins sur Internet (en tout les cas par l'intermédiaire d'un moteur de recherche) pour chercher une info.
On va directement sur le site concerné voir la doc. (on la télécharge en local même)
Et si je cherche une info sur un framework dev dans se langage, je ne suis pas pris en compte.
Ex : si je tape Django au lieu de python.
(troll inside : c'est sur que en Lua, je vais pas trouver une tonne de framework et libs associés.)
Dans le libre, si on veut voir la bonne forme d'un langage, on peut aussi se baser sur le nombre de connecté à un salon IRC... (tout aussi subjectif)
Dernière modification par moths-art (Le 05/10/2011, à 16:02)
Site : https://mothsart.github.io Dépôts Git : https://github.com/mothsart PPAs : https://launchpad.net/~jerem-ferry
Hors ligne
#15 Le 05/10/2011, à 16:13
- Epehj
Re : C++ : quelle horreur !
De toute façon Hibou57 ne va encore plus répondre, maintenant que grim7reaper à (re)démonté les arguments.
Pourquoi refaire un topic C++ vs Ada alors qu'il y en avait déjà un, sans réponse aussi..
Bref.
Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie
Hors ligne
#16 Le 05/10/2011, à 17:09
- omc
Re : C++ : quelle horreur !
Même troll-pourri, même blague-pourri:
ADA
Hors ligne
#17 Le 06/10/2011, à 09:14
- JoelS
Re : C++ : quelle horreur !
...
Ada à servit à programmer ariane 5 à ma connaissance et c'est plutôt un succès.
...
Pas pour la première :-)
Preuve supplémentaire aussi que le langage ne fait pas tout dans une application.
Hors ligne
#18 Le 06/10/2011, à 09:48
- grim7reaper
Re : C++ : quelle horreur !
moths-art a écrit :...
Ada à servit à programmer ariane 5 à ma connaissance et c'est plutôt un succès.
...Pas pour la première :-)
Oui, sauf que là pour le coup il me semble bien que ça soit la réutilisation d’un module Fortran d’Ariane 4 qui soit en cause.
Preuve supplémentaire aussi que le langage ne fait pas tout dans une application.
On est bien d’accord.
Dernière modification par grim7reaper (Le 06/10/2011, à 09:49)
Hors ligne
Pages : 1