GitHub Copilot et Copilot Chat : L’IA au service des développeurs ?

Retour d’expérience après quelques semaines d’utilisation quotidienne des deux assistants de programmation basés sur l’IA GPT 3.5 : GitHub Copilot et Copilot Chat. 

Tout d’abord, il convient de différencier le premier, outil de complétion de code contextuel, du second, assistant interactif.  

Copilot trouve sa force dans l’analyse et la génération de code, permettant ainsi au développeur de piocher dans un ensemble de complétions. Les suggestions sont élaborées, d’une part, à partir des onglets ouverts dans l’IDE, et d’autre part, à partir des projets publics mis à disposition par GitHub.  

Nous avons ainsi pu tester son utilisation dans le cadre d’une application Laravel 9 interfacée avec un serveur MongoDB, ainsi que lors de la création d’une application mobile React native. Du PHP au javascript, en passant par la génération de requêtes Mongo, Copilot apporte sans conteste une plus-value. 

Une économie de temps

Bien que moyennement, seul un quart des propositions soient retenues, GitHub Copilot permet indéniablement d’économiser du temps lors de la création de classes ou de méthodes (boilerplate), et ce, quel que soit le langage. 

En complément, Copilot Chat s’est avéré être un compagnon appréciable lors de la recherche de bugs, de l’optimisation de code, ou du portage de code d’un langage vers un autre. En effet, ce dernier nous a permis de porter des fragments de SDK écrits en Kotlin vers Swift, sans connaissance préalable dudit langage. De même, il nous a permis d’identifier très rapidement des dysfonctionnements au sein de fonctions PHP, d’optimiser certaines portions de code parfois trop verbeux, ou encore de migrer du code PHP d’une version vers une autre. 

Si le gain semble réel, cet outil a toutefois ses limites. En effet, il ne saurait remplacer la réflexion humaine et nécessite pour en faire bon usage, a minima, une connaissance suffisante du langage et de son écosystème. De surcroit, un mauvais prompt peut induire une perte de temps et d’argent. 

🚦 Des inconvénients

Bien que l’on parle « d’intelligence artificielle », on aurait tort de croire que celle-ci raisonne comme un humain. Si elle a la capacité d’interpréter un contexte, elle n’a jusqu’ici pas la capacité de conceptualiser. Ainsi, le code produit est à la hauteur du développeur, avec son style rédactionnel, ses nomenclatures, ses choix de nommage de variables… De surcroit, étant intégré sous forme de plugin, Copilot analyse continuellement le contexte, ce qui accroît la consommation des ressources machines, déjà conséquentes (IDE, docker, etc.). 

🔒 Confidentialité et sécurité

De manière plus générale, l’utilisation de tels outils pose plusieurs problèmes. Le recours aux dépôts GitHub peut être source de failles de sécurité, tant dans l’exposition de notre code que dans l’usage de portions de code externes. Quid également du respect des copyrights ? D’autre part, l’IA peut être source de bugs « non-humains », difficiles à identifier par la suite.  

🌐 Limites et considérations

Bien que nous constations de jour en jour des progrès fulgurants dans les domaines de la robotique et de l’IA, ces outils n’en sont encore qu’à leurs balbutiements et ne sauraient être autre chose, à ce stade, qu’une aide pour les développeurs. 

GitHub Copilot et Copilot chat offrent des fonctionnalités prometteuses pour accélérer le processus de développement, économiser du temps et résoudre certains problèmes algorithmiquement simples. Cependant, il est crucial de reconnaître leurs limites actuelles et de maintenir un équilibre entre l’utilisation de ces outils et le développement de compétences humaines fondamentales.  

En réduisant globalement la pensée critique et la créativité de leurs utilisateurs, ces outils ne risquent-ils pas d’induire une dépendance excessive, au détriment de la compréhension des concepts fondamentaux ? 

En fin de compte, ces technologies devraient être considérées comme des compléments au savoir-faire des développeurs plutôt que comme des substituts, et leur utilisation devrait être accompagnée d’une réflexion continue sur les implications éthiques, sécuritaires et cognitives qu’elles soulèvent.  

Recent Posts

  • Actualités

L’immuabilité, une solution contre les cyberattaques

Dans un monde de plus en plus numérique, la sécurité informatique et notamment la sécurité… Read More

3 semaines ago
  • Story

Uni-Médias fait confiance aux services d’hébergement et d’infogérance de SdV depuis 10 ans

Depuis maintenant plus de 10 ans, nous avons le privilège de travailler en étroite collaboration… Read More

4 semaines ago
  • Actualités

Sécurité des données : Les clés pour des sauvegardes réussies.

Vos données sont le pilier de votre entreprise. Qu'il s'agisse de données financières, de propriété… Read More

1 mois ago
  • Actualités

Protection des données ou l’importance des sauvegardes informatiques

Avec le tout numérique, les entreprises sont de plus en plus tributaires de leurs données… Read More

1 mois ago
  • Actualités

3ème NDD Camp Alsace à Strasbourg le 22 mars 2024

Venez rencontrer les professionnels des noms de domaine et des métiers connexes autour de conférences… Read More

2 mois ago
  • Actualités

Gardez le contrôle sur vos données grâce à la solution de stockage objet S3 !

Vous êtes confronté à un défi de taille : la gestion et le stockage efficaces… Read More

2 mois ago