J'en vois d'ici qui vont grincer des dents ? (l'auteur programme depuis plus de 20 ans et trouve que chatGPT peut être un excellent auxiliaire pour développer)
https://typefully.com/svpino/11-ways-you-can-use-chatgpt-to-write-code-YnkOEF4
J'en vois d'ici qui vont grincer des dents ? (l'auteur programme depuis plus de 20 ans et trouve que chatGPT peut être un excellent auxiliaire pour développer)
https://typefully.com/svpino/11-ways-you-can-use-chatgpt-to-write-code-YnkOEF4
@goofy Ici encore j'ai vu des contres-exemples développés, par exemple le fait que certaines réponses sur le dev sont carrément inventées (références à des registres inexistants des spécification UEFI par exemple), que les programmes générés ne fonctionnent pas...
... et ici encore, c'est *grave* : un dév qui s'appuie sur ChatGPT risque de ne pas voir *en quoi* les réponses sont fausses et de produire du code *à risque*.
@goofy (ça tombe mal : je suis dev)
@goofy Donc, faisons le tour des supposées améliorations (avertissement : LONG)...
@goofy 1) expliquer du code : si on ne comprend pas le code, on ne s'appuie pas sur un outil qui le comprend encore moins. On demande à Stack Overflow, à des collègues, à des gens qui *analysent* le code *en tant que code*.
@goofy 2) améliorer du code existant : ChatGPT ne *comprend pas* le code qu'il génère et les cas de code foireux produits par ChatGPT sont documentés. Prétendre qu'il peut améliorer du code juste parce qu'on lui a dit de le faire, c'est d'une ignorance dangereuse.
@goofy 3) réécrire du code dans un style donné
IL Y A DÉJÀ DES OUTILS POUR ÇA ET QUI ONT ÉTÉ TESTÉS, EUX.
@goofy 4) Réécrire le code de façon "idiomatique" (= selon les pratiques conseillées) : voir point 3.
@goofy 5) Simplifier du code. Voir point 2 : ChatGPT ne peut pas plussimplifier du code qu'il ne peutl'améliorer (laquelle amélioration inclut souvent de la simplification du reste). Si ChatGPT modifie du code, il y a de fortes chances que le résultat soit FAUX, quelle que soit la raison de la modification.
@goofy 6) Écrire des tests de code.
SURTOUT PAS.
Des tests de code, c'est du code.
ChatGPT ne sait pas faire du code correct.
Lui demander de générer des tests, qui ne seront pas plus corrects, c'est s'assurer que ces tests trouveront correct un code qui ne l'est PAS -- sauf qu'on aura confiance parce que ChatGPT oh mon dieu.
JE LE REDIS : SURTOUT PAS.
@goofy 7 Explorer des alternatives (trouver d'autres façons de coder une même fonctionnalité) => cf point 2, à quoi s'ajoute que pour le tri proposé en exemple, il existe des VOLUMES qui indiquent les solutions existantes et non, ChatGPT ne va pas en inventer une nouvelle.
@goofy 8) Traduire du code => même principe que "améliorer" et "simplifier" : quelle que soit la raison d'une transformation de code demandée à ChatGPT, ce qu'on obtient n'est plus digne de confiance et doit être testé avec minutie -- ET PAS PAR DES TEST PRODUITS PAR CHATGPT.
@goofy 9) Ecrire de la documentation
ous savez ce qui est pire que pas de documentation pour du code ? Une documentation FAUSSE.
Et pourquoi ChatGPT ferait-il une documentation correcte quand il ne sait pas faire un code correct (ou un compte-rendu historique correct, ou des maths correctes, ou...) ?
Réponse : IL NE PEUT PAS.
@goofy 10) Résoudre des bugs.
Rappel ChatGPT ne sait pas faire un code correct. Il ne sait pas analyser un code pour le documenter correctement.
Surprise : IL NE SAIT PAS DÉBUGUER NON PLUS, parce qu'il ne sait pas quel devrait être le comportement normal du code.
@goofy 11) "Scaffolding" => là je ne sais même pas ce que l'auteur veut dire par là. Dans l'exemple qu'il donne, c'est "faire coder ChatGPT", mais apparemment en s'appuyant sur des fonctions déjà existantes.
Sauf que c'est toujours lui faire produire du code tout court, et IL NE SAIT PAS FAIRE DU CODE CORRECT, appuyé sur des fonctions ou pas.
Pour rappel, ChatGPT voit des choses dans les spécifications UEFI qui n'y ont JAMAIS ÉTÉ.
@goofy Bref, 11 "bénéfices" dont aucun n'existe (et dont la plupart ne seraient pas des bénéfices, d'autres méthodes étant autrement plus éprouvées et dignes de confiance que ce générateur aléatoire de bavardage glorifié.
@goofy Ah mais je ne rejette pas en bloc sans avoir analysé la chose avant, hein.
Je rejette en bloc *après* avoir analysé la chose dans ce domaine qui est le dev et dans lequel je bosse depuis plus de trente ans et pour lequel je suis qualifié pour faire cette analyse, laquelle m'a amené aux conclusions que je tiens actuellement.
je n'ai pas de doute là-dessus :-) en revanche je te suggère d'aller directement au bas de l'article dont l'auteur est dev lui aussi et qui ne nourrit pas plus que toi d'illusions sur les failles du bidule etc.
peut-être qu'il se goure carrément en utilisant les services de chatGPT (quant à moi je n'y connais rien du tout bien sûr) mais il a le mérite d'explorer le truc et de voir si ça peut lui être utile avant de le rejeter en bloc comme le font des tas de développeurs.
Car en dev, l'à-peu-près c'est l'erreur et l'erreur c'est coûteux et dangereux.
Pour d'autres domaines je me garderai d'affirmer, mais je prends le pari que quel que soit le domaine, pour peu qu'il soit non-trivial (donc : la plupart d'entre eux), tu trouveras un spécialiste pour au mieux moquer, au pire s'alarmer de l'idée d'utiliser ChatGPT dans le dit domaine.
@goofy Et si "des tas de développeurs" rejettent en bloc l'outil, ce serait une erreur de croire que c'est les Canuts qui recommencent.
On pouvait être sûr que les métiers à tisser tisseraient et le feraient bien.
Mais ferais-tu confiance à une voiture dont le calculateur de direction assisté a été codé par ChatGPT ?
Ce ne sont pas du tout les mêmes risques.
Je ne crains rien pour mon taf.
Je crains pour la vie, au sens large *et* strict, des gens qui dépendront de code produit par ChatGPT.
Le danger vient d'abord de croire que les "IA" puissent "avoir raison" ou "faire des erreurs" : les IA ne raisonnent pas, bien ou mal.
Et '"plus puissant", ça veut dire quoi au fait ? Certainement pas "moins susceptible d'erreurs".
Comme tu le dis, le vrai risque est son exploitation par des business pour qui l'exactitude voire la vérité ne sont pas un but.
En résumé : ChatGPT est bien moins une encyclopédie qu'un outil de propagande.
@aaribaud
le danger véritable n'est pas chatGPT mais viendra peut-être davantage de la génération de ses successeurs bien plus puissants et moins sujets à l'erreur et comme d'habitude, de leur utilisation sans vergogne par le business (ça a probablement déjà commencé)
@goofy Ah mais je suis bon public pour les conneies sur ou de ChatGPT. C'est quand on le prend au sérieux que j'ai les dents qui poussent. :)
pour rire un peu tout de même https://chatcgt.fr/
Tiens, quelqu'un qui le dit mieux que moi :
Bon, il espère que ça va revitaliser (autrement dir : forcer à mettre plus d'effort dans) certaine processus du dev logiciel en amont (collecte des besoins, spécification) et en aval (vérifications).
En dev, on a ces processus complexe en place parce qu'on a des décennies d'expérience sur le coût des erreurs et comment les éviter.
Et dans les autres domaines ?
Mais même dans le dev, quand il imagine ce décalage du codage vers la spécification, il reste conscient que ça ne changera rien, en référençant Commit Strip : https://www.commitstrip.com/fr/2016/08/25/a-very-comprehensive-and-precise-spec/?setLocale=1.
Mais il néglige le fait que si le code est maîtrisable (en cas d'erreur on peut trouver direct où et rectifier), les specs ne le sont pas (en cas d'erreur du code trouver les] point[s] des spec qui pose[nt] pb est ardu).
Du coup chaque bug coûtera *bien* plus cher en effets et en réparations.
De plus, le code informatique, c'est prédictible : on sait dire quels effets aura telle altération d'un code sur son exécution.
À l'inverse, en faisant produire le code depuis une spécification par une "IA", on ne pourra pas prédire quels changements sur le code produit aura tel changement sur sa spécification.
Et si pour une "IA" future on peut le prédire, alors on peut remplacer cette "IA" par un outil sans sans "IA" fonctionnement équivalent, stable, et fiable.
Note aux éventuels lectrices et lecteurs dont le soft est le métier : oui, je viens de décrire un compilateur (pour les langages compilés) ou un interpréteur (pour les langages scriptés).
Et justement, si une "IA" doit être utilisée comme compilateur ou pire, interpréteur, alors mieux vaut utiliser ceux qui existent déjà. Au moins, ils ne se mettent pas à générer du code faux parce qu'on vient de leur faire ingérer un article sur la reproduction des castors en milieu désertique. :)
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.