J’ai testé GitHub Copilot – et il se pourrait bien qu’il soit nul …

J'ai testé GitHub Copilot - et il se pourrait bien qu'il soit nul ...


Ce que je trouve le plus déconcertant dans mes tests de programmation, c’est que les outils basés sur le même grand modèle de langage (LLM) ont tendance à donner des résultats très différents.

Par exemple, ChatGPT, Perplexity et GitHub Copilot sont tous basés sur le modèle GPT-4 d’OpenAI. Mais, comme je le montrerai ci-dessous, alors que les abonnements pro de ChatGPT et Perplexity donnent d’excellents résultats, GitHub Copilot échoue aussi souvent qu’il réussi.

Pour info, j’ai testé GitHub Copilot dans une instance VS Code.

Test 1 : Écrire un plugin WordPress

Le résultat de ce test est un lamentable échec. C’était mon premier test, donc je ne peux pas encore dire si GitHub Copilot est nul pour écrire du code ou si le contexte dans lequel on interagit avec lui est si restrictif qu’il ne peut pas répondre à cette exigence.

Je m’explique.

Ce test consiste à demander à l’IA de créer un plugin WordPress entièrement fonctionnel, avec des éléments d’interface d’administration et une logique opérationnelle. Le plugin prend un ensemble de noms, les trie et, s’il y a des doublons, les sépare pour qu’ils ne soient pas côte à côte.

La plupart des autres IA ont réussi ce test, du moins en partie. Cinq des dix modèles d’IA testés ont complètement réussi le test. Trois d’entre eux ont réussi une partie du test. Deux (dont Microsoft Copilot) ont échoué complètement.

J’ai donné à GitHub Copilot le même prompt qu’à tous les autres. Mais il n’a écrit que du code PHP. Pour être clair, ce problème peut être résolu en utilisant uniquement du code PHP. Mais certaines IA aiment inclure du JavaScript pour les fonctions interactives. GitHub Copilot a inclus du code pour l’utilisation de JavaScript, mais n’a jamais généré le JavaScript qu’il essayait d’utiliser.

Capture d’écran par David Gewirtz/ZDNET

Pire encore, lorsque j’ai créé un fichier JavaScript et que, à partir de ce fichier, j’ai essayé de demander à GitHub Copilot d’exécuter le prompt, j’ai obtenu un autre script PHP, qui faisait également référence à un fichier JavaScript.

Comme vous pouvez le voir ci-dessous, dans le fichier randomizer.js, il a essayé de mettre en file d’attente (c’est-à-dire de lancer l’exécution) le fichier randomizer.js, et le code qu’il a écrit était du PHP, et non du JavaScript.

randomjs

Capture d’écran par David Gewirtz/ZDNET

Test 2 : Réécriture d’une fonction de chaîne de caractères

Ce test est assez simple. J’ai écrit une fonction censée tester les dollars et les cents, mais qui n’a testé que les entiers (dollars). Le test demande à l’IA de corriger le code.

GitHub Copilot a retravaillé le code, mais le code qu’il a produit présentait un certain nombre de problèmes.

  • Il partait du principe qu’une valeur de chaîne était toujours une valeur de chaîne. S’il était vide, le code ne fonctionnait pas.
  • Le code d’expression régulière révisé ne fonctionnait pas si un point décimal (c’est-à-dire « 3. ») était saisi, si un point décimal supérieur (c’est-à-dire « .3 ») était saisi ou si des zéros supérieurs étaient inclus (c’est-à-dire « 00.30 »).

Pour un outil censé tester si une devise a été saisie correctement, il n’est pas acceptable d’échouer avec un code qui se bloquerait dans les cas extrêmes.

Test 3 : Découverte d’un bug gênant

GitHub Copilot a réussi ce test. Ce qui rend ce bogue si ennuyeux (et difficile à résoudre), c’est que le message d’erreur n’est pas directement lié au problème réel.

Ce bogue est en quelque sorte l’équivalent d’une question piège pour les codeurs. Pour le résoudre, il faut comprendre comment fonctionnent certains appels d’API dans le cadre de WordPress, puis appliquer ces connaissances au bogue en question.

Microsoft Copilot, Gemini et Meta Code Llama ont tous échoué à ce test. Mais GitHub Copilot l’a résolu correctement.

Test 4 : Écrire un script

Ici aussi, GitHub Copilot a réussi là où Microsoft Copilot a échoué.

La difficulté réside dans le fait que je teste la capacité de l’IA à créer un script qui connaît le codage en AppleScript, le modèle d’objet Chrome et un petit utilitaire de codage tiers réservé aux Mac et appelé Keyboard Maestro.

Pour réussir ce test, l’IA doit être capable de reconnaître ces trois environnements de codage et d’adapter des lignes de code individuelles à chacun de ces environnements.

Réflexions finales sur les capacités de codage de GitHub Copilot

Étant donné que GitHub Copilot utilise GPT-4, je trouve décourageant qu’il ait échoué à la moitié des tests. GitHub est l’environnement de gestion de sources le plus populaire de la planète, et l’on pourrait espérer que le support de codage de l’IA soit raisonnablement fiable.

Ce n’est pas le cas.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.