
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 ?


Voir aussi :


