Je ne peux pas laisser dire que parfois, "ça marche grâce au hasard" et encore moins que ça soit plus fréquent en C que sur n'importe quel langage.
Il peut arriver qu'un morceau de code utilisant mal la mémoire fonctionne systématiquement, mais c'est pas du hasard. Genre des cas de débordements de buffer qui se passent bien parce qu'on déborde sur une zone de mémoire allouée, qui a été utilisée précédemment dans l'algo et dont on ne se sert plus après. Ou des cas ou la réorganisation du code par le compilo masque l'expression d'un bug. Dans ces cas là, on peut dire qu'on a eu de la chance, mais c'est pas du hasard.
le paragraphe qui vient ne concerne personne en particulier de ce thread ... enfin j'espère, mais maintenant que je suis lancé, ça serait dommage:
La pente est très glissante quand on commence à arrêter de chercher des explications techniques à un comportement incorrecte en se contentant d'une explication approximative. En dehors du fait que c'est un peu de la paresse intellectuelle, on finit par en arriver à l'informatique vaudoue où les incantations pour faire fonctionner le bousin, transmises de bouches de développeurs à oreilles de développeurs (en se batardisant de plus en plus au passage), remplacent l'analyse et la compréhension. L'effet de bord malencontreux, c'est que ça empêche la structuration d'une approche efficace de débogage (et oui, on ne peut pas corriger la malchance). Une partie non négligeable de mon temps consiste à essayer de récupérer le n'importe quoi écrit par des développeurs qui font de l'informatique ésotériques [1]. C'est pas la partie la plus amusante (encore qu'au vu de certains bouts de code, y a des bonnes tranches de rigolade :)
j'ai vu des trucs "rigolos" en C, en C++, en Java et en Python (et en SQL, soyons fous).
bon, soyons honnêtes, la plupart du temps, c'est plutôt du code très naïf/inefficient/redondant/pas robuste/pas maintenable/pas lisible/... que du code complètement loufoque, mais bon, ça arrive aussi.
non ce n'est pas un troll, juste mon expérience).
c'est absolument pas incompatible :)
[1] mais ça fait des chouettes bouquins: Le Bureau des atrocités - Charles STROSS
[^] # Re: Merci
Posté par gaaaaaAab . En réponse au message Malloc et pointeur sur structure anonyme. Évalué à 2.
Je ne peux pas laisser dire que parfois, "ça marche grâce au hasard" et encore moins que ça soit plus fréquent en C que sur n'importe quel langage.
Il peut arriver qu'un morceau de code utilisant mal la mémoire fonctionne systématiquement, mais c'est pas du hasard. Genre des cas de débordements de buffer qui se passent bien parce qu'on déborde sur une zone de mémoire allouée, qui a été utilisée précédemment dans l'algo et dont on ne se sert plus après. Ou des cas ou la réorganisation du code par le compilo masque l'expression d'un bug. Dans ces cas là, on peut dire qu'on a eu de la chance, mais c'est pas du hasard.
le paragraphe qui vient ne concerne personne en particulier de ce thread ... enfin j'espère, mais maintenant que je suis lancé, ça serait dommage:
La pente est très glissante quand on commence à arrêter de chercher des explications techniques à un comportement incorrecte en se contentant d'une explication approximative. En dehors du fait que c'est un peu de la paresse intellectuelle, on finit par en arriver à l'informatique vaudoue où les incantations pour faire fonctionner le bousin, transmises de bouches de développeurs à oreilles de développeurs (en se batardisant de plus en plus au passage), remplacent l'analyse et la compréhension. L'effet de bord malencontreux, c'est que ça empêche la structuration d'une approche efficace de débogage (et oui, on ne peut pas corriger la malchance). Une partie non négligeable de mon temps consiste à essayer de récupérer le n'importe quoi écrit par des développeurs qui font de l'informatique ésotériques [1]. C'est pas la partie la plus amusante (encore qu'au vu de certains bouts de code, y a des bonnes tranches de rigolade :)
j'ai vu des trucs "rigolos" en C, en C++, en Java et en Python (et en SQL, soyons fous).
bon, soyons honnêtes, la plupart du temps, c'est plutôt du code très naïf/inefficient/redondant/pas robuste/pas maintenable/pas lisible/... que du code complètement loufoque, mais bon, ça arrive aussi.
c'est absolument pas incompatible :)
[1] mais ça fait des chouettes bouquins: Le Bureau des atrocités - Charles STROSS