Le CEO d’Nvidia Jensen Huang a dit récemment que, grâce à l’IA, tout le monde pouvait maintenant développer des logiciels. Cela signifie-t-il que les enfants n’auront plus besoin d’apprendre un langage de programmation à l’avenir ? Voilà encore un sujet sur lequel nous ne nous sentons pas obligés d’être en accord avec la vision la plus répandue et à la mode, que l’on entend dans les média.
Certaines personnes continuent à dire que les « large language models » (ou LLM) vont remplacer leurs propres créateurs. En supposant que cela doive se produire, cette issue reste probablement assez lointaine. Selon une étude publiée conjointement par des chercheurs d’universités chinoises, australiennes et néo-zélandaises (1), le code écrit par Github Copilot, par exemple, est truffé de problèmes. En moyenne, 35% des programmes présentent des failles de sécurité, et ce chiffre monte à 45% dans des langages comme C++ ou GO. Le problème avec les algorithmes qui apprennent à partir de toutes les sources disponibles est qu’ils ne savent pas différencier la bonne programmation du code médiocre. Et nous ne parlerons même pas des nombreux problèmes de copyright et de l’impossibilité de protéger un code généré par IA.
Les professionnels n’ont pas attendu la démocratisation de l’IA pour programmer sans la complexité de l’indentation. Depuis plus de cinq ans, les langages « no code » ou « low code » sont répandus, et sont utilisés dans l’apprentissage et la conception de prototypes. Néanmoins, on utilise de plus en plus de codeurs, et leur nombre a encore progressé de 3% en 2023 aux Etats-Unis.
Ce que le théorie générale a oublié de relever est que la résolution des problèmes a été de tout temps la principale valeur ajoutée des développeurs. La discipline imposée par les langages est une qualité recherchée dans tous les secteurs. Un programmeur ne produit pas juste du code capable de faire ce pourquoi il a été écrit. Faire mieux avec moins, ou avec une approche plus astucieuse, est la magie d’une bonne programmation. De la manière dont ils sont entrainés actuellement, les modèle d’IA ne peuvent pas être innovants, car ils ne créent pas de code: ils se limitent à le copier. Les IA seront des assistants précieux, ou des machines à pondre du logiciel au kilomètre, mais à ce stade, elles ne peuvent pas remplacer les capacités d’un bon codeur à résoudre les problèmes. On n’écrit pas un programme parfait seulement pour le plaisir: cela permet de réduire la capacité de mémoire nécessaire et d’optimiser la rapidité d’exécution avec, dans les deux cas, un effet sur la facilité d’utilisation, les coûts opérationnels et la consommation d’énergie.
L’innovation ne chasse pas toujours les acteurs d’origine. Elle peut aussi rendre leurs talents plus importants, et nous pensons que c’est ce qui arrivera aux bons développeurs du fait de l’IA. Après tout, l’avènement de l’ordinateur personnel n’a pas tué la dactylographie: il nous a simplement tous transformés en « dactylo » qui s’ignorent!
AR – 17 avril 2024
(1) Yujia Fu, Peng Liang, Amjed Tahir, Zengyang Li, Motjaba Shahin and Jiaxin Yu, « Security Weaknesses of Copilot Generated Code in GitHub »