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 :
Envoyé par GitClear
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