Développeurs et IA : les générateurs de code sont-ils fiables ?
Une récente étude questionne la fiabilité et la pérennité des lignes de code produites à l’aide d’assistants alimentés par l’intelligence artificielle, comme GitHub Copilot.
Face à l’émergence des générateurs de code assistés par l’intelligence artificielle, à l’instar de GitHub Copilot, dévoilé en 2021 et adopté par plus d’un million de développeurs dans sa version payante selon sa société éditrice, faut-il s’inquiéter de la fiabilité de ces solutions ? C’est l’interrogation soulevée par une récente étude publiée par la société d’analyse GitClear, qui vise à mettre en perspective l’assertion de GitHub selon laquelle les développeurs qui utilisent sa solution rédigent du code « 55 % plus rapidement ».
La qualité et la maintenabilité du code (…) sont-elles plus proches d’une contribution soignée d’un développeur sénior, ou plutôt comparable au travail désordonné d’un contractant à court terme, interroge la société d’analyse.
Pour réaliser ce rapport et, surtout, évaluer « les différences de qualité du code » entre l’IA et les professionnels du développement web, GitClear a analysé environ 153 millions de lignes de codes modifiées entre janvier 2020 et décembre 2023. Et ses conclusions sont préoccupantes.
Une prolifération de lignes de codes erronées
C’est sans doute l’un des principaux enseignements de l’étude : depuis 2020, GitClear constate une hausse du taux de churn, ou taux de renouvellement en français, c’est-à-dire du « code poussé vers le dépôt puis ultérieurement révoqué, supprimé ou mis à jour dans les deux semaines ». En 2022, soit l’année de déploiement de GitHub Copilot puis de ChatGPT rappelle l’étude, le taux de churn a augmenté de 9 % sur l’échantillon analysé, démontrant la prolifération croissante de « code erroné ». Selon GitClear, le taux de churn tournait autour de 3 ou 4 % avant l’émergence de ces outils. Il est oscille désormais autour de 7 %.
Parallèlement, GitClear observe une augmentation du pourcentage de lignes de code qui ont été dupliquées par copier-coller, passant de 8,3 % en 2020 à 11,6 % en 2024. « Il n’existe sans doute pas de pire fléau pour la maintenabilité à long terme que le code copier-coller », alerte la société d’analyse. L’émergence des assistants de codage propulsés par l’intelligence artificielle inciterait davantage les développeurs à ajouter de nouvelles lignes de code, plutôt que de réutiliser du code stable, manipulé par d’autres et « davantage susceptible de contenir de la documentation », d’après l’étude. GitClear craint qu’en 2024, le copier-coller puisse représenter entre 20 et 25 % de l’ensemble des opérations de codage.
Des lignes de code générées puis rapidement remplacées
GitClear a également évalué la qualité du code généré sur l’échantillon analysé, en « examinant la durée écoulée entre le moment où le code est écrit et le moment où il est mis à jour ou supprimé », peut-on lire dans l’étude. Là encore, les résultats sont préoccupants : le pourcentage de lignes de code remplacées en moins de deux semaines a connu une hausse de presque 10 %, d’après GitClear. À l’inverse, les lignes rédigées il y a plus d’un an sont moins susceptibles d’être modifiées en 2024 qu’en 2020, comme le montre le tableau ci-dessous.
Cette tendance suggère qu’avant l’émergence des assistants IA, les développeurs étaient davantage enclins à récupérer du code existant dans le but de l’améliorer ou le réutiliser, suggère GitClear.
Ainsi, si l’emploi d’un assistant de codage peut effectivement stimuler la productivité, rien ne garantit que ses suggestions soient fiables et pérennes, s’inquiète GitClear. La démocratisation de l’usage de ces solutions pourrait donc devenir problématique, en particulier pour les développeurs inexpérimentés qui seront inévitablement tentés de les employer sans évaluer la pertinence des suggestions fournies. « Lorsque les développeurs sont submergés de suggestions qui fonctionnent à court terme, il devient tentant d’ajouter davantage de lignes de code sans véritablement vérifier si un système existant pourrait être réutilisé », confirme GitClear.