L’arrivée du développement assisté par IA permet maintenant à une grande majorité de personne (développeurs ou non) de créer de nouveaux logiciels ou encore de modifier les logiciels existants. Ceci à un impact sur l’open source (abrégé OSS pour Open Source Software aussi appelé code source ouvert en Français1) en particulier, dont la source des logiciels est ouverte, ce qui permet un accès facile au code pour modification.
Vers la fin des contributions?
On assiste actuellement à une hausse du nombre de contributions sur les projets ouverts. Intégrer une contribution dans un logiciel à toujours eu un coût plus ou moins invisible du point de vue du contributeur, dans la plupart des cas elle vient ajouter à la charge cognitive déjà existante des mainteneurs du projet.
Cet impact sur la charge cognitive est encore plus important à l’heure où la plupart des contributions sont apportées par des utilisateurs avec pas ou peu d’expertise dans le domaine du projet, les mainteneurs doivent alors doubler d’effort lors du processus d’intégration et de revue d’une contribution pour rester en contrôle sur l’architecture et l’implémentation du logiciel.
Certains projets s’équipent alors pour palier à cet impact en introduisant de nouvelles règles de contribution2: certaines plus ou moins permissives sur l’utilisation du développement assisté par IA, d’autres renforçant la nécessité de discussion en amont de la contribution et d’autres plus strictes encore refusant l’intégration des contributions ouvertes par des utilisateurs qui ne sont pas capables d’expliquer les changements apportés.
Le processus d’intégration d’une contribution a toujours été asynchrone et dépendant de plusieurs facteurs dont, entre autres, la disponibilité des mainteneurs et l’impact des différents fuseaux horaires. Ceci implique une certaine lenteur de base, or l’ajout de ces nouvelles règles peuvent ajouter un autre poids à un processus déjà lent. Dans une ère où tout va de plus en plus vite (comme l’évolution des modèles IA3), ceci peut créer une forme de frustration pour un utilisateur voulant intégrer une nouvelle fonctionnalité à un logiciel OSS.
Une nouvelle tendance risque alors d’émerger, à contre-courant de la contribution, où l’utilisateur préférera fourcher4 un projet pour le personnaliser.
Fourcher pour personnaliser
Il est devenu plus simple de fourcher un projet et d’y apporter une modification que de suivre le processus habituel de contribution, en s’abrogeant des règles et directives imposées par celui-ci. On récupère alors simplement le code source du projet, utilise le développement assisté par IA pour y introduire la fonctionnalité souhaité et l’on publie notre version personnalisée du logiciel.
L’un des principaux inconvénients de fourcher un projet vient du fait que l’on crée une version différente du projet principal et que les cycles de vie entre le projet en amont et la version personnalisée diffère - on observe alors une dérive entre les deux. Cependant, il est possible d’envisager l’utilisation de l’IA, de manière automatisée, pour réaligner la version personnalisée sur la version en amont lors de la publication d’une nouvelle version officielle. On obtient donc le meilleur des deux mondes: l’accès aux toutes dernières fonctionnalités et corrections de bogues publiées avec les versions officielles ainsi que les fonctionnalités personnalisées intégrées.
Certains mainteneurs approcheront peut être ceci de manière différente, en équipant et configurant leurs projets pour faciliter l’utilisation du développement assisté par IA5. Une philosophie dans laquelle les contributions deviennent minimales et où l’utilisateur est encouragé à fourcher et personnaliser le logiciel à leur goût6.
Cette approche, fondamentalement différente au fonctionnement actuel du développement de projet OSS qui est beaucoup plus orienté sur la contribution, risque de transformer l’écosystème OSS et de résulter en une prolifération de logiciels personnalisés.
-
voir la politique d'usage de l'IA sur le projet Ghostty ou encore le projet Vouch, en anglais ↩
-
l’histoire des LLMs, en anglais ↩
-
en intégrant des formats tels que AGENTS.md ou encore des Agents Skills, en anglais ↩
-
le projet nanoclaw propose un bon exemple de cette philosophie, en anglais ↩