Un pas de plus vers la programmation naturelle

Publié le 16 août 2021 par Patriceb @cestpasmonidee
Depuis les débuts de l'informatique et au fil des générations, les outils de développement logiciel ont évolué vers la simplification. Aujourd'hui, nous disposons de plates-formes dites « low-code » autorisant un assemblage visuel de composants et, dans un autre registre, de solutions de dictée destinées à renforcer la productivité. Et demain ?
En pratique, la tâche des programmeurs n'a pas fondamentalement changé en un demi-siècle : elle consiste à traduire les étapes élémentaires d'un comportement désiré dans un langage spécialisé, interprétable par la machine. Ce dernier est certes devenu plus riche et plus facile à apprendre au cours du temps, jusqu'à devenir parfois purement graphique (au moins pour des projets basiques), mais ce travail de conversion reste aussi essentiel que lourd et rébarbatif… et il requiert une expertise relativement rare.
Le rêve qu'entretiennent tous les professionnels (et leurs responsables) est de pouvoir un jour automatiser cette fonction. Quiconque aurait besoin d'une application pourrait la construire en expliquant, pas à pas, les opérations à réaliser, dans des termes de tous les jours, un robot intelligent se chargeant ensuite de transformer cette description générique en la série d'instructions techniques qui la matérialiserait pour un ordinateur. Or voilà exactement la promesse du système OpenAI Codex dévoilé il y a quelques jours.
Reposant sur la fameuse librairie GPT-3, qui, à partir d'un entraînement sur des téraoctets de textes en tout genre, est capable d'inférer l'intention d'un énoncé en langage naturel (en anglais, principalement), il s'appuie d'autre part sur l'analyse de milliards de lignes de code disponibles sur le web dans le but d'exécuter sa mission, à savoir comprendre une directive et rédiger les formules correspondantes dans l'un des langages informatiques supportés (Python en priorité, mais aussi JavaScript, Perl, PHP, Swift…).

Les quelques exemples accompagnant l'annonce d'OpenAI Codex – un jeu vidéo trivial, un classique « Hello World ! », un modèle de science de données… – paraissent élémentaires mais ils donnent une idée précise et inspirante du potentiel d'un tel dispositif. Soudain, l'apprentissage d'un jargon ésotérique n'est plus un pré-requis avant d'envisager de créer le moindre bout de logiciel et tout un chacun, moyennant une capacité d'ordonnancer logiquement un concept, devient un développeur en puissance.
Le service n'est, pour l'instant, accessible qu'en beta privée (gratuite), sous la forme d'une API, et il a vraisemblablement besoin d'être encore affiné et complété afin d'aboutir à une solution véritablement opérationnelle. En outre, son principe de fonctionnement soulève diverses interrogations qu'il faudra adresser avant une éventuelle adoption à grande échelle, entre autres en termes de propriété intellectuelle (en effet, le robot codeur est surtout un plagiaire industriel) et, selon toute probabilité, de sécurité.
L'automatisation de la production de code n'est donc peut-être pas pour tout de suite, mais elle augure de mutations radicales dans nos sociétés dominées par le logiciel, car elle pourrait contribuer à faire croître de manière exponentielle la capacité de développement collective. Par ailleurs, elle est également susceptible de renverser la notion habituelle de service applicatif : pourquoi ne pas imaginer une nouvelle approche d'assistant personnel, capable de programmer à la volée la fonction requise à un instant « t », dans tous les moments de la vie, en réponse à un simple ordre vocal ?