IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le code auto-réparateur est-il l'avenir du développement logiciel ?
Ou une simple anarque qui essaie de prendre de l'ampleur à l'ère des IA génératives ?

Le , par Michael Guilloux

10PARTAGES

13  0 
Avec la complexité du processus de développement logiciel, les développeurs sont constamment à la recherche d'outils permettant d'automatiser certaines parties de leur travail. Nous disposons déjà de solutions qui permettent automatiquement de détecter des bogues, tester des solutions, générer des documentations, etc. Si ces outils sont beaucoup appréciés et font partie de leur quotidien, les développeurs en veulent toujours plus. Avec la montée en puissance de l'IA générative, l'on s'attend donc à ce que l'automatisation de la programmation passe à un tout autre niveau. Cela dit, le code auto-réparateur est-il l'avenir du développement logiciel ?

Le concept de code auto-réparateur, également connu sous le nom de « self-healing code », fait référence à la capacité d'un logiciel ou d'un système informatique à détecter et à corriger automatiquement les erreurs ou les dysfonctionnements sans intervention humaine directe. Cette capacité repose sur l'utilisation de techniques d'automatisation, telles que l'apprentissage automatique (machine learning) et l'intelligence artificielle (IA), pour analyser, diagnostiquer et résoudre les problèmes de code de manière autonome. Cela peut inclure la détection automatique des bugs, la correction des erreurs, l'optimisation des performances ou même l'adaptation dynamique aux changements de l'environnement.

Plusieurs entreprises se sont engagées dans la recherche et le développement de technologies liées à l'automatisation de la détection et de la correction des erreurs logicielles. Microsoft par exemple mène des recherches sur des techniques de code auto-réparateur, notamment avec son projet RISE (Reliable, Intelligent, Secure, and Efficient) visant à développer des systèmes logiciels auto-réparateurs. D'autres géants américains tels que Google, IBM, Facebook ou encore Amazon mènent également des recherches sur des approches d'auto-réparation logicielle.

Les bénéfices attendus en valent la peine : réduction des temps d'arrêt, amélioration de la fiabilité des applications et des systèmes informatiques, gain de productivité pour les développeurs, réduction des coûts de maintenance. Un autre avantage pourrait être l'amélioration de la sécurité : la capacité de certains codes auto-réparateurs à détecter et corriger les vulnérabilités de sécurité permettra en effet de renforcer la sécurité des systèmes.

Le domaine des systèmes auto-réparateurs est en constante évolution, et de nombreuses autres entreprises, startups et instituts de recherche s'engagent dans cette voie, apportant de nouvelles idées et technologies pour améliorer la robustesse et la fiabilité des systèmes logiciels.

Une application concrète d'auto-réparation logicielle concerne la révision de code au moment du déploiement. Imaginons un scénario où un push de code déclenche une alerte d'une erreur de construction dans votre pipeline CI. Un plugin dédié va alors déclencher une action GitHub qui envoie automatiquement le code dans un sandbox où une IA peut réviser le code et l'erreur, puis apporter une correction. Le nouveau code est ensuite renvoyé dans le pipeline, et s'il réussit le test, il est prêt pour le déploiement. C'est ce que propose le développeur Calvin Hoenes à travers un projet hébergé sur GitHub. Actuellement, ce travail se fait dans le pipeline CI/CD, mais Calvin Hoenes rêve d'un monde où ces types d'agents pourraient aider à résoudre les erreurs provenant de code déjà en production.

Le code auto-réparateur est-il l'avenir du développement logiciel ?

Avec la montée en puissance de l'IA générative, certains entreprises offrant des services et plateformes pour développeurs estiment que le code auto-réparateur est l'avenir du développement logiciel. Cette affirmation fait toutefois fi des limites avérées des technologies d'auto-réparation logicielle et de manière générale de l'intelligence artificielle en tant codeur.


Pour certains développeurs, le concept de code auto-réparateur est simplement une « anarque qui a déjà été tentée plusieurs fois. Le problème, c'est que vous avez besoin d'une spécification parfaite pour que le code auto-réparateur soit même possible », explique un internaute. « Mais devinez quoi ? Les spécifications ont à peu près le même taux d'erreurs que le code. Et les incompétents derrière [les technologies d'auto-réparation logicielle] prétendent toujours que c'est l'avenir. Ignorez-les, ils veulent votre argent et ils n'ont rien de valeur à offrir en retour. »

Un autre plus radical rejette les qualificatifs « autonomes » et « intelligents » attribués aux solutions d'IA d'aide au développement logiciel. « Si l'IA est suffisamment intelligente pour écrire un code fonctionnel, nous aurions assisté à une révolution en mathématiques avec l'IA prouvant les théorèmes de manière logique plutôt que de simplement calculer numériquement tous les cas possibles. Si l'IA n'est pas assez intelligente pour écrire une preuve lorsque tous les axiomes et règles sont connus et fixes, à quel point est-il probable que l'IA soit assez intelligente pour écrire un programme qui fonctionne avec des exigences floues et un environnement externe changeant ? », dit-il.

En dehors de cela, rappelons que l'automatisation de la correction des erreurs comporte un risque majeur : celui d'introduire de nouveaux bogues. Cela veut dire que même avec ces technologies dites « autonomes », la validation humaine reste essentielle pour garantir que les corrections apportées sont appropriées et n'introduisent pas de problèmes supplémentaires. Sinon, cela risque d'augmenter la dette technique. C'est d'ailleurs l'avis d'Armando Solar-Lezama, professeur au laboratoire d'informatique et d'intelligence artificielle du Massachusetts Institute of Technology.

« Les gens parlent de dette technique depuis longtemps, et maintenant nous avons ici une toute nouvelle carte de crédit qui va nous permettre d'accumuler de la dette technique d'une manière qui n'était pas possible auparavant », a-t-il déclaré lors d'une interview avec le Wall Street Journal, à propos de l'utilisation d'IA pour l'écriture de code. « Je pense qu'il y a un risque d'accumuler beaucoup de code très médiocre écrit par une machine », a-t-il ajouté, soulignant que les entreprises devront repenser les méthodologies pour travailler de concert avec les nouvelles capacités des outils afin d'éviter cela.

En résumé, les technologies de code auto-réparateur peuvent être des outils précieux pour les développeurs humains, en automatisant certaines tâches répétitives et en réduisant les erreurs. Cependant, l'expertise et la contribution des développeurs humains restent indispensables pour créer des logiciels de qualité, adaptés aux besoins spécifiques et aux défis complexes de chaque projet.

Source : Médias sociaux

Et vous ?

Quel est votre avis sur le sujet ?
Le code auto-réparateur est-il l'avenir du développement logiciel ou une simple anarque ?

Voir aussi

92 % des développeurs utiliseraient des outils d'intelligence artificielle selon une enquête de GitHub auprès des développeurs

Le Codage assisté par l'IA gratuit avec Colab : Google introduira bientôt des fonctions de codage de l'IA utilisant la famille de modèles de code la plus avancée de Google, Codey

L'IA Codex d'OpenAI fait ses débuts en programmation et peut déjà coder dans une dizaine de langages, l'IA pourra-t-elle bientôt décharger les développeurs de certaines tâches, voire les remplacer ?

Meta annonce la création d'un nouvel outil d'IA générative "révolutionnaire" à des fins de codage, baptisé CodeCompose, dont le fonctionnement est assez similaire à celui du Copilot de GitHub

Les assistants de programmation basés sur l'IA incitent à repenser l'enseignement de l'informatique, selon des chercheurs

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de
https://www.developpez.com
Le 22/06/2023 à 14:46
Confier la correction de bugs à une IA en dehors de cas classiques, simples (ce qu'on fait déjà avec nos ide) c'est de l'inconscience pure sans contrôles supplémentaires rigoureux derrière.
Je n'imagine même pas le risque pris pour des applications critiques.
9  0