mardi, novembre 28, 2023

Craignant la mauvaise chose – O’Reilly


Il y a beaucoup d’angoisse à l’idée que les développeurs de logiciels « perdent leur emploi » au profit de l’IA, remplacés par une version plus intelligente de ChatGPT, du Copilot de GitHub, du Codey de Google ou quelque chose de similaire. Matt Welsh a parlé et écrit sur le fin de la programmation en tant que tel. Il se demande si les grands modèles de langage élimineront la programmation telle que nous la connaissons, et il est ravi que la réponse soit « oui » : éventuellement, sinon dans un avenir immédiat. Mais qu’est-ce que cela signifie en pratique ? Qu’est-ce que cela signifie pour les personnes qui gagnent leur vie en écrivant des logiciels ?

Certaines entreprises valoriseront certainement l’IA comme un outil permettant de remplacer l’effort humain, plutôt que d’augmenter les capacités humaines. Les programmeurs qui travaillent pour ces entreprises risquent de perdre leur emploi à cause de l’IA. Si vous travaillez pour une de ces organisations, je suis désolé pour vous, mais c’est vraiment une opportunité. Malgré les licenciements très médiatisés, le marché du travail pour les programmeurs est formidable, il le restera probablement et vous feriez probablement mieux de trouver un employeur qui ne vous considère pas comme une dépense à minimiser. Il est temps d’acquérir de nouvelles compétences et de trouver un employeur qui vous valorise vraiment.

Apprenez plus vite. Creusez plus profondément. Voir plus loin.

Mais le nombre de programmeurs « remplacés par l’IA » sera faible. Voici pourquoi et comment l’utilisation de l’IA va changer la discipline dans son ensemble. J’ai fait une étude très non scientifique sur le temps que les programmeurs passent réellement à écrire du code. OK, je viens de taper « Combien de temps un développeur de logiciels passe-t-il à coder » dans la barre de recherche et j’ai regardé les premiers articles, qui donnaient des pourcentages allant de 10 % à 40 %. D’après mes discussions et mes observations avec de nombreuses personnes au fil des années, je me situe dans la partie inférieure de cette fourchette : 15 à 20 %.

ChatGPT ne fera pas disparaître complètement les 20 % de leur temps que les programmeurs passent à écrire du code. Vous devez toujours rédiger des invites, et nous sommes tous en train d’apprendre que si vous voulez que ChatGPT fasse du bon travail, les invites doivent être très détaillées. Combien de temps et d’efforts cela permet-il d’économiser ? J’ai vu des estimations allant jusqu’à 80 %, mais je n’y crois pas ; Je pense que 25 à 50 % est plus raisonnable. Si 20 % de votre temps est consacré au codage et que la génération de code basée sur l’IA vous rend 50 % plus efficace, alors vous ne récupérez en réalité qu’environ 10 % de votre temps. Vous pouvez l’utiliser pour produire plus de code. Je n’ai pas encore vu de programmeur qui manquait de travail ou qui n’était pas confronté à une date de livraison impossible. Ou vous pouvez consacrer plus de temps au « reste du travail », soit les 80 % de votre temps qui n’ont pas été consacrés à l’écriture de code. Une partie de ce temps est consacrée à des réunions inutiles, mais une grande partie du « reste du travail » consiste à comprendre les besoins de l’utilisateur, à concevoir, tester, déboguer, réviser le code, découvrir ce dont l’utilisateur a réellement besoin (ce qu’il ne vous a pas dit). la première fois), affiner la conception, créer une interface utilisateur efficace, auditer la sécurité, etc. C’est une longue liste.

Ce « reste du travail » (en particulier la partie « besoins de l’utilisateur ») est quelque chose pour lequel notre industrie n’a jamais été particulièrement douée. La conception – du logiciel lui-même, des interfaces utilisateur et de la représentation des données – ne va certainement pas disparaître, et ce n’est pas un domaine dans lequel la génération actuelle d’IA est très douée. Nous avons parcouru un long chemin, mais je ne connais personne qui n’ait pas eu à sauver du code décrit comme une « masse bouillonnante de bits ». Tests et débogage : eh bien, si vous avez beaucoup joué avec ChatGPT, vous savez que les tests et le débogage ne disparaîtront pas. Les IA génèrent du code incorrect, et cela ne va pas s’arrêter de sitôt. L’audit de sécurité ne fera que gagner en importance, et non pas diminuer ; il est très difficile pour un programmeur de comprendre les implications en matière de sécurité d’un code qu’il n’a pas écrit. Passer plus de temps sur ces choses – et laisser les détails de la transmission des lignes de code à une IA – améliorera sûrement la qualité des produits que nous livrons.

Maintenant, adoptons une vision à très long terme. Supposons que Matt Welsh ait raison et que la programmation telle que nous la connaissons disparaîtra – pas demain, mais au cours des 20 prochaines années. Est-ce que ça disparaît vraiment ? Il y a quelques semaines, j’ai montré à Tim O’Reilly certaines de mes expériences avec Ethan et Lilach Mollick. invites pour utiliser l’IA en classe. Sa réaction a été : « Cette invite est en réalité de la programmation. » Il a raison. Écrire une invite détaillée n’est en réalité qu’une forme différente de programmation. Vous dites toujours à un ordinateur ce que vous voulez qu’il fasse, étape par étape. Et j’ai réalisé qu’après avoir passé 20 ans à se plaindre du fait que la programmation n’avait pas beaucoup changé depuis les années 1970, ChatGPT avait soudainement franchi l’étape suivante. Il ne s’agit pas d’un pas vers un nouveau paradigme, qu’il soit fonctionnel, orienté objet ou hyperdimensionnel. Je m’attendais à ce que la prochaine étape des langages de programmation soit visuelle, mais ce n’est pas le cas non plus. C’est une étape vers un nouveau type de programmation qui ne nécessite pas de syntaxe ou de sémantique formellement définies. Programmation sans cartes perforées virtuelles. Une programmation qui ne vous oblige pas à passer la moitié de votre temps à rechercher les noms et les paramètres des fonctions de bibliothèque que vous avez oubliées.

Dans le meilleur des mondes possibles, cela pourrait ramener le temps passé à écrire du code à zéro, ou presque. Mais dans le meilleur des cas, le programmeur ne gagne que 20 % du temps. De plus, cela n’élimine pas vraiment la programmation. Cela change la donne, rendant peut-être les programmeurs plus efficaces et leur donnant définitivement plus de temps pour parler aux utilisateurs, comprendre les problèmes auxquels ils sont confrontés et concevoir des systèmes efficaces et sécurisés pour résoudre ces problèmes. Compter les lignes de code est moins important que comprendre les problèmes en profondeur et trouver comment les résoudre, mais ce n’est pas nouveau. Il y a vingt ans, le Manifeste Agile pointé dans cette direction, en valorisant :

Individus et interactions sur les processus et les outils
Logiciel fonctionnel sur une documentation complète
Collaboration client lors de la négociation du contrat
Répondre au changement au sujet d’un plan

Malgré 23 ans de « pratiques agiles », la collaboration client a toujours été lésée. Sans interagir avec les clients et les utilisateurs, Agile se réduit rapidement à un ensemble de rituels. Libérer les programmeurs de la syntaxe leur donnera-t-il réellement plus de temps pour collaborer avec les clients et répondre aux changements ? Pour préparer cet avenir, les programmeurs devront en apprendre davantage sur la façon de travailler directement avec les clients et de concevoir des logiciels répondant à leurs besoins. C’est une opportunité, pas un désastre. Les programmeurs ont travaillé trop longtemps sous le stigmate d’être des coubarbes qui ne peuvent et ne devraient pas être autorisés à parler aux humains. Il est temps de rejeter ce stéréotype et de construire logiciel comme si les gens comptaient.

L’IA n’est pas quelque chose à craindre. Écrire sur le nouveau OpenAI Interpréteur de code plug-in (déployé progressivement maintenant), Ethan Mollick dit « Mon temps devient plus précieux, pas moins, car je peux me concentrer sur ce qui est important plutôt que sur les tâches routinières. » L’IA doit être apprise, testée et intégrée aux pratiques de programmation afin que les programmeurs puissent consacrer plus de temps à ce qui est vraiment important : comprendre et résoudre des problèmes. Le point final de cette révolution ne sera pas une ligne de chômage ; ce sera un meilleur logiciel. La seule chose à craindre est de ne pas réussir cette transition.

La programmation ne va pas disparaître. Cela va changer, et ces changements seront pour le mieux.



Related Articles

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Latest Articles