Développeurs : comment les projets d’automatisation du codage pourraient tout changer

Spread the love

Pour la grande majorité des humains, écrire un code est comme apprendre un nouveau langage. Mais les chercheurs d’Intel et du MIT ont pour mission de changer cela. Et la solution qu’ils proposent est de construire du code… qui peut coder.

Appelé programmation machine, le domaine sur lequel se penchent les chercheurs concerne l’automatisation du développement de logiciels. Et l’équipe vient de révéler un nouvel outil qui rapproche les développeurs de la perspective de disposer un jour de machines capables de se programmer elles-mêmes.

MISIM (Machine Inferred code Similarity), la nouvelle technologie inventée par les laboratoires d’Intel et du MIT,  permet d’étudier des bribes de code pour comprendre ce qu’un logiciel est censé faire. Le système peut ensuite construire une base de données dans laquelle les codes logiciels qui ont des résultats similaires reçoivent des notes de similarité.

publicité

Comprendre l’intention derrière un nouvel algorithme

Sur la base de ce catalogue de codes préexistants, MISIM peut comprendre l’intention derrière un nouvel algorithme et aider les ingénieurs travaillant sur des logiciels en suggérant d’autres façons de programmer ou en proposant des corrections et des options pour rendre le code plus efficace.

Pour l’instant, Intel prévoit d’utiliser cet outil en interne, pour aider les développeurs dans des tâches banales comme le débogage, qui, selon les estimations actuelles, prendrait jusqu’à la moitié du temps des programmeurs.

“Notre objectif avec MISIM est d’aider les développeurs à faire des choix précis comme “quelle est la manière la plus efficace d’utiliser cette API” ou “comment puis-je valider correctement cette entrée”. Cela devrait donner aux ingénieurs beaucoup plus de temps pour se concentrer sur les éléments de leur travail qui créent réellement un impact dans le monde réel” explique à ZDNet Ryan Marcus, scientifique d’Intel Labs.

Interpréter le code à un niveau supérieur

Connu sous le nom de “système de similarité de code”, le principe qui sous-tend MISIM n’est pas nouveau : les technologies qui tentent de déterminer si un morceau de code est similaire à un autre existent déjà, et sont largement utilisées par les développeurs pour obtenir des informations sur d’autres programmes existants.

Facebook, par exemple, utilise un système de recommandation de code appelé Aroma, qui recommande des extensions pour un bout de code déjà écrit – en partant du principe que les programmeurs écrivent souvent un code similaire à celui qui a déjà été écrit.

Mais la plupart des systèmes existants se concentrent sur la manière dont le code est écrit afin d’établir des similitudes avec d’autres programmes. MISIM, en revanche, examine ce qu’un bout de code a l’intention de faire, quelle que soit la façon dont il est conçu. Cela signifie que même si des langages, des structures de données et des algorithmes différents sont utilisés pour effectuer le même calcul, MISIM peut toujours établir des similitudes.

L’outil utilise une nouvelle technologie appelée structure sémantique contextuelle (CASS – context-aware semantic structure), qui permet a MISIM d’interpréter le code à un niveau supérieur – pas seulement la structure d’un programme, mais aussi son intention. Lorsqu’un code lui est présenté, l’algorithme le traduit sous une forme qui représente ce que fait le logiciel, plutôt que la façon dont il est écrit ; MISIM compare ensuite le résultat qu’il a trouvé pour le code à celui de millions d’autres programmes extraits de dépôts en ligne.

Faire face à la pénurie de développeurs qualifiés

Une fois qu’il a établi des liens avec d’autres bribes de codes, MISIM peut servir de système de recommandation pour les ingénieurs, en suggérant d’autres façons d’effectuer le même calcul, qui pourraient être plus rapides et plus efficaces.

Justin Gottschlich, responsable de l’équipe de recherche en programmation machine d’Intel, a déclaré à ZDNet qu’à mesure que le développement de logiciels devient de plus en plus complexe, MISIM pourrait avoir un grand impact sur la productivité.

“Le rythme auquel nous introduisons des développeurs seniors n’est pas en adéquation avec le rythme auquel nous introduisons de nouvelles architectures de puces et la complexité des logiciels”, dit-il. “Avec le matériel hétérogène d’aujourd’hui – CPU, GPU, FPGA, ASIC, puces neuromorphes et, bientôt, puces quantiques – il deviendra difficile, voire impossible, de trouver des développeurs capables de programmer correctement, efficacement et en toute sécurité sur tout ce matériel”.

Programmer avec des gestes !

Mais l’objectif à long terme de la programmation machine va bien au-delà de l’aide au développement de logiciels telle qu’elle existe aujourd’hui. Après tout, si une technologie peut évaluer l’intention et fournir des bribes de code pertinentes en réponse, il ne semble pas exagéré d’imaginer que l’algorithme pourrait un jour être utilisé par des non développeurs.

Combiné au traitement du langage naturel, par exemple, MISIM pourrait en théorie réagir aux indices verbaux pour permettre un jour aux gens d’écrire des programmes simplement en les décrivant. En d’autres termes, une sorte d’Alexa, mais pour le développement de logiciels.

M. Gottschlich explique que la création de logiciels est actuellement limitée aux 27 millions de personnes dans le monde qui peuvent coder. Le but ultime de la programmation machine est d’augmenter ce nombre et, un jour, de permettre aux gens d’exprimer leurs idées autrement que par du code – que ce soit par un langage naturel, des diagrammes visuels ou même des gestes.

Un long chemin encore à parcourir

De quoi se passer du développement tel qu’il est pratiqué aujourd’hui ? Pas si vite, déclare M. Gottschlich. La programmation machine nécessitera toujours quelques données sous forme de code, et des professionnels pour gérer les aspects plus spécialisés de la programmation. La différence, cependant, est que des millions de personnes supplémentaires vont s’essayer à la création de logiciels – générant, si tant est qu’il y en ait, encore plus de travail pour les codeurs traditionnels.

“Lorsque la programmation des machines sera pleinement réalisée, nous pensons qu’elle ne supprimera pas d’emplois, mais en créera au contraire – peut-être des millions”, dit M. Gottschlich.

Le développement automatisé de logiciels tel qu’il est imaginé par l’équipe à l’origine de MISIM est encore loin. Mais comme c’est le cas pour de nombreuses innovations, il n’est pas trop tôt pour penser aux implications que cette technologie pourrait avoir, pour le meilleur et pour le pire.

Les laboratoires d’Intel et du MIT examinent ces questions philosophiques et éthiques en même temps qu’ils relèvent les défis techniques posés par la programmation machine. Des discussions sont déjà en cours pour atténuer l’utilisation négative de cette technologie – et il est peu probable que les chercheurs soient à court de sujets à débattre dans un avenir proche.

Leave a Reply