- Nous avons beaucoup parlé de l'impact de l'IA générative sur la programmation. Nous avons vu des démonstrations impressionnantes de Copilot et d'autres outils d'IA générant du code. Nous avons vu des outils capables de déboguer du code et d'expliquer ce qu'il fait. Nous avons vu des outils capables de générer des tests unitaires. Et nous avons vu des outils capables de générer du code à partir de spécifications en langage naturel.
- Tout cela est impressionnant, mais je pense que nous ne voyons pas encore le tableau d'ensemble. Nous sommes comme les gens qui, en 1975, regardaient les premiers ordinateurs personnels et disaient : "Oh, c'est génial. Je peux faire ma comptabilité dessus." C'était vrai, mais ça passait complètement à côté de l'essentiel. Les ordinateurs personnels n'étaient pas des machines à calculer glorifiées ; ils ont changé notre façon de travailler, de jouer et de communiquer.
- Je pense que l'IA générative va avoir un impact similaire sur la programmation. Ce ne sera pas seulement un meilleur environnement de développement intégré (IDE) ou un meilleur assistant de codage. Ce sera quelque chose de complètement différent. Ce sera la fin de la programmation telle que nous la connaissons.
Qu'est-ce que la programmation ?
Betty Jean Jennings and Frances Bilas (right) program the ENIAC in 1946. Via the Computer History Museum
- Pour comprendre pourquoi je pense cela, nous devons réfléchir à ce qu'est réellement la programmation. La programmation consiste à dire à un ordinateur quoi faire. Mais ce n'est pas tout. La programmation consiste à dire à un ordinateur quoi faire d'une manière qu'il peut comprendre. Et c'est là que les choses deviennent intéressantes.
- Les ordinateurs ne comprennent pas le langage naturel. Ils ne comprennent que les instructions très précises et très détaillées. C'est pourquoi nous avons des langages de programmation. Les langages de programmation sont des façons de communiquer avec les ordinateurs qui sont suffisamment précises et détaillées pour que les ordinateurs puissent les comprendre.
- Mais les langages de programmation ne sont pas la seule façon de communiquer avec les ordinateurs. Nous avons également des interfaces graphiques, des interfaces vocales et d'autres types d'interfaces. Et ces interfaces deviennent de plus en plus sophistiquées. Elles deviennent de plus en plus capables de comprendre ce que nous voulons dire, même si nous ne le disons pas de manière précise et détaillée.
- L'IA générative est la prochaine étape de cette évolution. C'est une interface qui peut comprendre ce que nous voulons dire, même si nous le disons en langage naturel. Et c'est une interface qui peut générer du code à partir de ce que nous disons.
La fin de la programmation
“Google, Facebook, Amazon, or a host of more recent Silicon Valley startups…employ tens of thousands of workers. If you think with a twentieth century factory mindset, those workers spend their days grinding out products, just like their industrial forebears, only today, they are producing software rather than physical goods. If, instead, you step back and view these companies with a 21st century mindset, you realize that a large part of the work of these companies – delivering search results, news and information, social network status updates, and relevant products for purchase – is done by software programs and algorithms. These are the real workers, and the programmers who create them are their managers.”—Tim O’Reilly, “Managing the Bots That Are Managing the Business,” MIT Sloan Management Review, May 21, 2016
- Alors, qu'est-ce que cela signifie pour la programmation ? Cela signifie que la programmation telle que nous la connaissons va disparaître. Nous n'aurons plus besoin d'écrire du code détaillé et précis. Nous n'aurons plus besoin de connaître la syntaxe exacte d'un langage de programmation. Nous n'aurons plus besoin de comprendre les détails de la façon dont un ordinateur fonctionne.
- Au lieu de cela, nous dirons simplement à l'ordinateur ce que nous voulons qu'il fasse, et il le fera. Nous lui dirons en langage naturel, et il comprendra. Nous lui dirons de manière imprécise et incomplète, et il remplira les blancs.
- Cela ne signifie pas que la programmation disparaîtra complètement. Il y aura toujours des gens qui devront comprendre comment les ordinateurs fonctionnent réellement. Il y aura toujours des gens qui devront créer de nouveaux langages de programmation et de nouveaux outils. Mais ces personnes seront une petite minorité. La grande majorité des gens qui créent des logiciels n'auront plus besoin de savoir programmer au sens traditionnel du terme.
- C'est un changement énorme. C'est un changement qui va transformer la façon dont nous créons des logiciels. C'est un changement qui va transformer la façon dont nous interagissons avec les ordinateurs. Et c'est un changement qui va transformer la façon dont nous pensons aux ordinateurs et aux logiciels.
- Nous sommes au début de cette transformation. Nous ne savons pas encore exactement à quoi elle ressemblera. Mais nous savons que ce sera quelque chose de complètement différent de ce que nous avons maintenant. Ce sera la fin de la programmation telle que nous la connaissons.