La programmation peut-elle être automatisée ?
Une analyse du créateur du langage de programmation Leaf
Les progrès de la robotique et de l’IA mettent chaque jour un peu plus en danger certains postes de responsabilités réservés aux hommes dans les entreprises. Tout récemment au Japon, 34 employés d’une compagnie d’assurance perdaient leur travail au profit de l’IA Watson d’IBM, preuve que la robotique et l’IA commencent à remplacer les humains. Du côté du Royaume-Uni, il est anticipé que 30 % des emplois seront automatisés d’ici à 2030 ; on parle ici d’emplois dans des secteurs comme l’industrie manufacturière, le commerce, la finance et les assurances, etc., mais il est rarement fait mention de la programmation. Cela veut-il dire que la programmation serait exemptée de la menace que constituent la robotique et l’IA ? C’est à cette question qu’a essayé de répondre Edaqa Mortoray, le créateur du langage de programmation Leaf, et un développeur Fuse.
Automatisation et robots
Edaqa Mortoray débute par une virgule dans l’industrie manufacturière pour en extraire une définition de la notion d’automatisation, celle bien connue qui stipule qu’il s’agit du processus qui consiste à faire passer une matière d’un état A (matière brute) à un état B (produit fini), ce, en se servant de machines. Le parallèle avec l’univers de la programmation lui permet ensuite d’identifier le produit fini à un exécutable à faire tourner sur une plateforme donnée, la matière brute au code source, et la machine à un compilateur, puisque c’est celui-ci qui est chargé d’opérer la transformation. Pour rester en phase avec ses développements, nous avons jeté un œil à l’utilisation du célèbre compilateur gcc (cf. figure ci-dessous).
Une unique utilisation de la commande gcc –o hello.exe hello.c permet tour à tour d’intégrer le texte des fichiers d’entête au code source (Preprocessing), de compiler le fichier obtenu, de l’assembler, puis de le lier à des bibliothèques pour obtenir un exécutable. Quatre étapes pour lesquelles l’intervention humaine n’a pas été nécessaire, et dont la répétition deviendrait vite fastidieuse pour un opérateur humain.
C’est là tout l’intérêt, d’après le créateur du langage de programmation Leaf, de disposer d’une machine (le compilateur) qui se chargera, chaque fois qu’il sera nécessaire, de passer ces étapes en revue pour fournir automatiquement un exécutable, vous évitant au passage beaucoup de travail. Dans l’industrie manufacturière, on voit généralement des robots effectuer des tâches de nature répétitive à longueur de journée ; le parallèle à l’univers de la programmation permet donc de percevoir le compilateur comme un robot dans cette analyse.
Limites des robots actuels
D’après Edaqa Mortoray, même si le compilateur précédent ôte déjà à l’humain beaucoup de sa charge de travail, l’idéal serait qu’il soit capable de faire plus, c’est-à-dire produire lui-même le code source dont il a besoin pour générer un exécutable. Il faudrait pour cela qu’il soit selon lui doté d’aptitudes cognitives suffisantes pour réceptionner les spécifications techniques d’un projet, les transformer en code source pour en faire un ou des exécutables, toutes choses qui vont bien au-delà des performances de la meilleure des IA disponibles actuellement sur le marché selon lui.
Effectuer des tâches à caractère répétitif, voilà selon Edaqa Mortoray le rôle qu’est censé jouer un robot dans la programmation, rôle qui ne s’écarte finalement pas de celui qu’on lui attribue généralement dans l’industrie manufacturière. De ce point de vue donc, beaucoup de tâches de programmation ont déjà été automatisées et devraient continuer de l’être dans des domaines qui requièrent que l’on dispose de machines capables de rechercher, de comparer, etc., ce, sans arrêt. Il entrevoit l’utilisation de ces robots pour des applications comme les analyseurs de code statique ou autres outils de refactoring qu’ils serviraient à rendre plus performants, mais s’inscrit en faux contre la possibilité de les voir remplacer l’humain dans ce rôle de programmeur, du moins, dans un futur proche.
Sources : Blog Edaqa Mortoray, NTU
Et vous ?
Que pensez-vous ?
Partagez-vous cet avis ?
Voir aussi :
L'automatisation des tâches ou l'automatisation des emplois ? les robots vont-ils bientôt commencer à mettre l'homme au chômage ?
Un développeur est licencié après avoir automatisé ses tâches de programmation pendant six ans, il découvre qu'il ne sait plus écrire un bon programme
Une entreprise chinoise remplace 90 % des employés d'une usine par des robots, et voit sa production augmenter de 250 %
Partager