Les IA copilots dans le développement : notre retour d'expérience

Si vous ne vivez pas dans une grotte, vous avez surement déjà entendu parler de l'IA générative, et à quel point elle "révolutionne" plein de secteurs.
Arthur.jpg
Arthur COMBE, JavaScript loverMis à jour le 28 Oct 2024
lesIA.png

De notre côté, dans notre domaine qui est le développement d'applications, il s'agit clairement d'une révolution, particulièrement pour notre façon de coder.

Et je ne vais pas parler du fait qu'à présent, tout le monde est capable de faire une page HTMLHTML (HyperText Markup Language) est un langage permettant de décrire le découpage d'une page web. avec un bouton en 2 prompts : c'est un tout autre débat.

Dans cet article, on va plutôt parler de la manière dont l'IA générative peut changer le quotidien de vrais développeurs, qui savaient déjà écrire du code avant, et qui peuvent maintenant le faire encore plus efficacement.

Qu'est-ce que l'IA générative ?

On peut parler d' IA copilot, de pair-programming, d'auto-complétion ou même de génération de code, mais le principe reste le même : une IA qui aide le développeur, de la même façon que votre IDEEnvironnement de développement permettant de faciliter le développement d'applications. vous aide déjà aujourd'hui.

L'IA copilot va principalement vous aider de 3 façons différentes :

  • Terminer la ligne de code que vous avez commencé, et vous proposer d'écrire la suite (la souris c'est chez vous) 
    autocomplete-1_1_.gif
  • Générer du code en fonction d'un commentaire 
    autocomplete-2.gif
  • Parler directement à l'IA, et lui demander des trucs. 
    autocomplete-3 1.gif

Si vous n'avez jamais utilisé de copilot, pour l'instant ça ne vous fait surement pas rêver, mais promis je vais vous en montrer un peu plus !

Le principe d'une IA Copilot, comme son nom l'indique, est d'être avec vous pendant que vous codez, et de vous épargner les tâches les moins intéressantes.

  • Créer 20 données de mock afin de tester votre fonctionnalité ? 10 secondes avec votre copilot.
  • Faire un formulaire sur votre HTML, avec des données qui viennent de votre TS ? 5 secondes pour l'IA.
  • Coder une fonction simple, dont le nommage est suffisamment explicite ? 2 secondes à coup de tabulation.

Si vous, qui me lisez, n'êtes pas développeur, vous allez me demander "mais alors, qu'est-ce qu'il vous reste à faire en tant que développeur si l'IA code tout à votre place ?" Ne vous inquiétez pas, au moment de l'écriture de cet article, un copilot est incapable de structurer du code, ou d'imaginer des solutions à des problème complexes.

De plus, il n'a accès qu'au contexte de votre code. Il ne connait pas le cahier des charges, les ateliers que vous avez eu avec le client, ou les réunions avec votre lead. Pour l'instant, il ne fait que du code "à la ligne", c'est-à-dire qu'il va être très utile pour générer du code "bête et méchant". Mais justement, c'est ça qu'on aime ! On peut se concentrer, nous humains, sur la résolution des problèmes complexes, imaginer l'application dans son ensemble, en passant moins de temps sur les tâches peu intéressantes.

Bref vous l'avez compris, personnellement je suis fan.

Copilot vs Supermaven : le comparatif !

Pour l'instant, j'ai pu tester en profondeur Github Copilot, et Supermaven, voici un petit retour d'expérience sur ces 2 IA copilot.

Github Copilot

Mon premier contact avec l'IA d'auto-complétion. La découverte, l'euphorie, l'insouciance ; tant d'émotions. C'est là que je me rends compte de la puissance de ce nouvel outil, mais également de ses limites :

  • Un contexte assez faible : il ne connait pas tout votre code, et il oublie aussi très vite.
  • Il est assez lent : je ne m'en rendais pas vraiment compte avant de tester Supermaven, mais Github Copilot met souvent un peu de temps à vous proposer du code.

Pour moi son gros point fort, c'est sa chat box. Il met à disposition une chat box personnalisée, qui peut prendre en contexte des fichiers de code. Vous pouvez également sélectionner directement du code, et parler à l'IA afin de lui demander des choses. Par exemple, vous pouvez prendre une fonction un peu longue, et l'IA peut la diviser en plusieurs petite fonctions afin de réduire la complexité de votre code.

Un cas d'utilisation que je rencontre régulièrement, c'est prendre un algo' un peu complexe, et demander à l'IA s'il peut me l'optimiser. 80% de sa réponse sera surement à jeter, mais si vous pouvez en tirer quelques améliorations, c'est déjà ça !

Supermaven

Au départ, simplement une aventure afin de voir de nouveaux horizons, au final, un véritable coup de cœur. En plus d'être beaucoup plus rapide que Github Copilot, il a également un contexte beaucoup plus grand, et est bien mieux intégré aux IDE. A titre d'exemple, Github Copilot permet seulement d'ajouter du code à votre curseur, ce qui peut être vite embêtant quand le code que vous ajoutez demande de modifier également la fin de la ligne. Supermaven lui, peut remplacer une ligne ou un bloc de code entier.

Gros point faible de SuperMaven, la chat box. Il s'agit juste d'un accès à l'APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. de ChatGPT 4o, sans réel customisation. Elle est beaucoup moins efficace que celle de Github Copilot.

Les IA Copilots, on adopte dans le développement ?

De mon côté, c'est un grand oui ! Et côté outil, que ce soit un Github Copilot ou Supermaven, les deux peuvent être envisagés pour des besoins différents.

Vous êtes un lead et vous avez plus besoin d'un compagnon que vous pouvez challenger pour des problèmes techniques ? Github Copilot sera bien plus efficace !

Plutôt développeur qui mange des lignes de code à longueur de journée ? Supermaven, sans hésiter.

Et en bonus, comme promis, un petit exemple d'une utilisation un peu plus complète d'un Copilot.

Comme vous pouvez le voir, le but n'est pas de suivre bêtement les propositions, mais de travailler ensemble, par exemple en le corrigeant afin qu'il soit plus pertinent par la suite.