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 !

L'utilisation de l'assistant d'IA GitHub Copilot pour la programmation entraîne une baisse de la qualité globale du code et une quantité importante de code redondant,
Selon une étude

Le , par Mathis Lucas

71PARTAGES

5  0 
Une nouvelle étude publiée par la société d'analyse GitClear rapporte que l'utilisation des assistants d'IA pour la programmation ne contribue pas toujours à la qualité du code produit. Les chercheurs de GitClear ont constaté que les outils d'IA comme GitHub Copilot ne donnent en fait que des suggestions pour ajouter du code. Aucune suggestion n'est faite pour la mise à jour ou la suppression de code. Il en résulte notamment une quantité importante de code redondant. Ils ont également constaté une forte augmentation du "code churn". Cela signifie que le code est fréquemment modifié, ce qui est généralement un mauvais signe pour la qualité.

Les outils d'IA de codage connaissent une popularité croissante. La version bêta de GitHub Copilot, qui a donné le coup d'envoi pour cette nouvelle classe de logiciels, a été introduite en juin 2021 et selon le PDG Thomas Dohmke, l'outil compte plus d'un million de développeurs ayant souscrit un abonnement payant. Dohmke a aussi publié des statistiques selon lesquelles GitHub Copilot permet aux développeurs d'accomplir leurs tâches 55 % plus rapidement. Selon lui, 46 % du code a été complété par GitHub Copilot dans les fichiers où il a été activé. Mais quel est l'impact de l'utilisation de ces outils sur la qualité du code ?


Eh bien, selon une nouvelle étude de GitClear, la qualité du code n'est pas bonne, avec des problèmes tels que le renouvellement du code - du code ajouté, mais supprimé peu après - et une plus grande proportion de code répété. L'étude porte sur le code ajouté, mis à jour, supprimé, copié ou déplacé, et exclut ce que GitClear définit comme du "bruit". Cela fait référence au même code engagé dans plusieurs branches, des lignes vierges et d'autres lignes non significatives. Voici ci-après la conclusion des analystes de GitClear :

Citation Envoyé par GitClear


L'année 2023 a marqué la sortie de GitHub Copilot. En moins de deux ans, l'assistant de programmation basé sur l'IA est passé du statut de "prototype" à celui de "pierre angulaire", utilisé par des millions de développeurs dans des centaines de milliers d'entreprises. Cette croissance sans précédent marque le début d'une nouvelle ère dans l'écriture du code.

GitHub a publié de nombreuses études approfondies sur la croissance et l'impact de l'IA sur le développement de logiciels. L'une de leurs conclusions est que les développeurs écrivent du code "55 % plus vite" lorsqu'ils utilisent Copilot. Cette profusion de code généré par les grands modèles de langage soulève la question suivante :

Comment la qualité et la maintenabilité du code se comparent-elles à ce qui aurait été écrit par un humain ? Est-ce plus proche des contributions soignées et raffinées d'un développeur senior, ou plus proche du travail désordonné d'un contractant à court terme ?

Pour répondre à cette question, GitClear a analysé environ 153 millions de lignes de code modifiées, rédigées entre janvier 2020 et décembre 2023. Il s'agit de la plus grande base de données connue sur les modifications de code hautement structurées qui a été utilisée pour évaluer les différences de qualité du code. Nous constatons des tendances déconcertantes en matière de maintenabilité.

La rotation du code - le pourcentage de lignes qui sont révisées ou mises à jour moins de deux semaines après leur création - devrait doubler en 2024 par rapport à sa valeur de référence de 2021, avant l'apparition de l'IA. Nous constatons également que le pourcentage de "code ajouté" et de "code copié/collé" augmente par rapport au code "mis à jour", "supprimé" et "déplacé". À cet égard, le code généré par l'IA ressemble à un contributeur itinérant, enclin à violer la rigueur des dépôts visités.

Nous concluons par des suggestions à l'intention des responsables qui cherchent à maintenir une qualité de code élevée en dépit des forces qui s'y opposent actuellement.

Selon Bill Harding, fondateur de GitClear, l'essentiel est que les assistants de code de l'IA sont très bons pour ajouter du code, mais ils peuvent causer "une dette technique induite par l'IA". « L'ajout rapide de code est souhaitable si vous travaillez de manière isolée ou sur un problème nouveau. Mais un code ajouté à la va-vite est néfaste pour les équipes chargées d'en assurer la maintenance par la suite », a déclaré Harding. En d'autres termes, une plus grande quantité n'est pas toujours synonyme d'une meilleure qualité. Selon lui, cette tendance pourrait poser de nombreux problèmes aux organisations à l'avenir.

En outre, une étude publiée en octobre dernier a rapporté que GitHub Copilot génère du code comportant des faiblesses de sécurité. « Nos résultats confirment que les développeurs doivent être prudents lorsqu'ils ajoutent du code généré par Copilot (et des outils d'IA similaires de génération de code) et doivent également effectuer des contrôles de sécurité appropriés lorsqu'ils acceptent le code suggéré. Cela montre également que les praticiens doivent développer une conscience et des compétences en matière de sécurité correspondantes », ont écrit les chercheurs à l'origine de l'étude.

Dans le cadre de son étude, GitClear a mis l'accent sur la qualité du code plutôt que sur la quantité, et observe que les assistants d'IA ont tendance à donner "des suggestions pour ajouter du code, mais jamais de suggestions pour mettre à jour, déplacer ou supprimer du code". Les chercheurs proposent également que les algorithmes de suggestion de code soient incités à proposer les suggestions les plus susceptibles d'être acceptées, ce qui semble raisonnable jusqu'à ce que l'on considère l'importance d'un code concis et lisible. Selon le rapport de l'étude, il n'est pas facile de mesurer la qualité du code.


Les chercheurs identifient toutefois certaines tendances qui montrent que la quantité de code ajoutée, supprimée, mise à jour et copiée/collée n'a jamais été aussi élevée, mais que les cas de déplacement de code ont diminué. Ils constatent également une augmentation du taux de renouvellement, qui atteint aujourd'hui 7,1 %, contre seulement 3,3 % en 2020. Le code est déplacé lorsque les développeurs le restructurent, ce qui pourrait être un indicateur de refactorisation, qui consiste à améliorer la conception et la structure du code sans en modifier le comportement. Cette tendance inquiète les chercheurs.

Les raisons de ces tendances sont sujettes à spéculation, mais les chercheurs pensent qu'elles sont liées à l'utilisation croissante des assistants d'IA de programmation. Ils sont cinglants quant à l'impact de l'augmentation du code copier-coller, affirmant qu'il n'y a pas "de pire fléau pour la maintenabilité à long terme du code". Le copier-coller excessif n'est pas un problème nouveau. Les développeurs peuvent le faire parce que cela leur semble plus rapide et plus facile que de chercher à réutiliser le code existant, ou simplement parce que plusieurs développeurs travaillant sur un projet ne communiquent pas bien.

De nombreux analystes et critiques semblent partager l'avis du fondateur de GitClear selon lequel la dette technique des entreprises pourrait fortement augmenter à l'avenir. « L'IA est comme une toute nouvelle carte de crédit qui va nous permettre d'accumuler de la dette technique comme nous n'avons jamais pu le faire auparavant », a déclaré Armando Solar-Lezama, professeur au MIT, au Wall Street Journal dans un article paru l'année dernière sur les outils de codage de l'IA. D'un autre côté, l'essor de la programmation assistée par l'IA pourrait également avoir une incidence sur la rémunération des ingénieurs.


« Si les responsables de l'ingénierie prennent des décisions salariales basées sur les lignes de code modifiées, la combinaison de ce facteur et de l'IA crée des incitations propices à la soumission de codes regrettables », a déclaré Harding. Selon lui, il est difficile de dire si les outils d'IA seront un avantage net pour le développement de logiciels. Il a souligné les avantages de l'utilisation de l'IA pour obtenir des réponses personnalisées en matière de code, grâce à des sites tels que Phind. Mais il a également déclaré que "la lecture d'un mauvais code est l'élément du travail qui épuise le plus la volonté des développeurs".

Une étude réalisée par McKinsey l'année dernière a révélé qu'une "augmentation massive de la productivité" grâce aux assistants d'IA de programmation était possible, mais qu'elle dépendait de la complexité de la tâche et de l'expérience du développeur. « En fin de compte, pour maintenir la qualité du code, les développeurs doivent comprendre les attributs d'un code de qualité et inciter l'outil à produire les bons résultats », indique l'étude de McKinsey. L'étude de GitClear porte sur GitHub Copilot, mais les programmeurs utilisent également d'autres outils d'IA pour le codage qui ont émergé ces dernières années.

Par ailleurs, GitClear ne dit pas grand-chose sur la manière de résoudre les problèmes identifiés, se contentant de poser des questions pour le suivi de la recherche, bien qu'il suggère que les responsables de l'ingénierie devraient surveiller les données entrantes et prendre en compte leurs implications pour la maintenance future du produit. Les assistants d'IA de programmation ne disparaîtront pas, bien qu'ils puissent s'améliorer, et comme tous les nouveaux outils, les développeurs apprendront à optimiser leur utilisation.

D'une certaine manière, ces recherches peuvent rassurer les développeurs qui craignent d'être remplacés par des outils d'IA. Une étude récente sur le remaniement par l'IA, réalisée par la société d'analyse de code CodeScene, a conclu que "l'IA est loin de remplacer les humains dans un contexte de codage ; l'IA d'aujourd'hui est tout simplement trop sujette aux erreurs et est loin d'être en mesure de modifier le code existant en toute sécurité".

Source : rapport de l'étude

Et vous ?

Que pensez-vous des assistants d'IA de codage et des problèmes relatifs à leur utilisation ?
Partagez-vous les conclusions selon lesquels ces outils entraînent une baisse de la qualité du code ?
Pourquoi l'utilisation de ces outils entraîne-t-elle une augmentation du taux de renouvellement du code ?
Selon vous, les assistants d'IA de codage vont-ils contribuer à accroître la dette technique des entreprises ?
Comment les développeurs et les entreprises peuvent-ils utiliser les assistants d'IA de codage de manière efficace ?

Voir aussi

GitHub lance Copilot X, l'expérience des développeurs alimentée par l'IA, grâce à l'ajout d'une fonction de chat et de voix, permettant de demander comment accomplir certaines tâches de codage

GitHub teste une nouvelle fonctionnalité qui permettra aux développeurs de coder avec leur voix dans l'outil Copilot et lance des débats sur la productivité et la gestion des open spaces

Un enseignant pointe GitHub Copilot comme l'outil parfait pour les tricheurs lors des évaluations de programmation et ravive les craintes sur la disparition du métier de développeur à cause de l'IA

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

Avatar de ValCapri
Membre habitué https://www.developpez.com
Le 26/01/2024 à 23:18
Oui, l'IA peut générer du code de mauvaise qualité. Pour moi, GitHub Copilot est plus à considérer comme une autocompletetion enrichi. Et il est bien souvent bluffant à ce niveau.

Par contre, l'IA de Jetbrains me semble de bien meilleur qualité et notamment le refactoring où il te propose des aides intéressantes.

Maintenant, ce sont des aides, ça ne remplace pas l'humain derrière.
3  0