Les récents progrès réalisés dans les réseaux de neurones de génération textuelle et dans les modèles de langage laissent entrevoir un futur proche où la machine saura programmer automatiquement ce que l’utilisateur imagine.

Il y a quelques semaines, le nouveau système de génération automatique de texte GPT-3 d’OpenAI avait étonné les experts par sa capacité à comprendre le langage naturel et à, par exemple, automatiquement générer du code HTML correspondant à la demande de l’utilisateur. Typiquement, en saisissant « un bouton qui ressemble à une pastèque », l’IA génère automatiquement les lignes de code HTML permettant d’afficher au sein d’une page WEB un bouton rond et rouge avec un contour vert. Cet exemple est évidemment ultra-basique mais il soulève deux questions :
– Les développeurs pourraient-ils utiliser une telle intelligence pour accélérer les temps de développement et produire du code dénué de bugs ?
– Pourrait-on se passer de développeurs pour réaliser des programmes métiers qui nécessitent bien souvent davantage de connaissance « métier » que de maîtrise d’écriture de code ?

Ces questions sont d’autant plus pertinentes que, d’une manière générale, les entreprises manquent de développeurs et que le succès des outils « low-code / no-code » démontrent déjà que des utilisateurs avancés peuvent produire des « apps » sans réelle compétence en programmation.

MISIM, l’IA d’Intel qui voudrait programmer

Un groupe de chercheurs d’Intel vient d’annoncer la création d’une nouvelle IA capable de concevoir son propre code. Le système s’appelle MISIM, pour Machine Inferred Code Similarity. Il est capable de comprendre la signification de lignes de code. C’est en quelque sorte une intelligence NLP (Natural Language Processing) capable non pas de comprendre le français ou l’anglais, mais un langage informatique. Le système opère par « similarités ». MISIM compare des extraits de code avec des millions d’autres programmes qui lui ont été préalablement soumis. Son réseau de neurones lui permet de trouver des codes qui ont des intentions similaires ou font des choses similaires. Dès lors, il est capable de comparer deux algorithmes, de comprendre ce qu’ils font, et de déterminer lequel des deux est le plus optimal.

Par extension, MISIM peut suggérer d’autres façons de coder un algorithme ou proposer des corrections à un code écrit par un développeur. MISIM pourrait ainsi, à terme, servir de fondation pour créer des machines ou des intelligences artificielles capables d’écrire du code, voir leur propre code en s’appuyant sur l’immense bibliothèque de codes déjà écrits par les développeurs en open source notamment.

Des assistances aux développeurs plus intelligentes

Dans un premier temps, une telle intelligence pourrait être incorporée aux outils de développement pour aider les développeurs à automatiquement générer certaines séquences et améliorer leur productivité. Elle pourrait également être utilisée pour traquer les bugs. Selon une étude publiée par l’Université de Cambridge, les programmeurs consacrent la moitié de leur temps de travail à la programmation et l’autre moitié au débogage. Et le coût total estimé du débogage est de 312 milliards de dollars par an.
L’idée d’une telle assistance n’est d’ailleurs pas nouvelle. Des outils comme DeepCode ou Visual Studio IntelliCode utilisent déjà de l’IA pour détecter les bugs au moment même de l’écriture des lignes de code. Amazon a récemment lancé son CodeGuru Reviewer capable d’identifier les erreurs de programmation, les mauvaises pratiques, les bugs difficiles à dénicher, ou les failles de sécurité inscrites dans le code informatique. Dans un même ordre d’idée, la startup française Ponicode a récemment lancé une IA capable de générer automatiquement des tests unitaires pour vérifier le bon fonctionnement d’une portion donnée d’un programme.

MISIM entend toutefois aller plus loin que ces premières intelligences déjà opérationnelles. Le directeur de recherche d’Intel pour le Machine Programming, Justin Gottschlich, précise que « l’objectif ultime d’Intel est de démocratiser la création de logiciels afin de permettre, grâce au Machine Programming, à n’importe qui de créer une application simplement en exprimant ses intentions ou besoins ». Il reconnaît néanmoins que les recherches actuelles sont encore loin d’un tel objectif.

Mais MISIM est une expérience qui intéresse au plus haut point les acteurs du marché des outils « Low Code / No Code ». Ces outils rencontrent un succès croissant dans les entreprises. Ils ont conduit à l’apparition de « Citizen Developers », des utilisateurs avancés ayant une compétence très limitée en programmation mais maîtrisant les besoins métiers. À l’aide de tels outils, ces utilisateurs peuvent créer des Apps métiers (notamment mobiles) simplement par assemblage de composants et d’API à la souris et sans programmation. Ces outils incorporent de plus en plus d’IA et une intelligence comme MISIM permettrait d’offrir davantage de souplesse en offrant aux Citizen Developers la capacité d’exprimer en langage naturel ce qu’ils veulent réaliser, l’IA générant le code correspondant.