Depuis quelque temps, de nouveux éditeurs apparaissent avec la promesse d'intégrer l'intelligence artificielle pour améliorer la productivité. Après GitHub Copilot et Cursor, c'est au tour de Windsurf de faire parler de lui avec l'intégration d'un agent capable de s'attaquer à ades tâches plus complexe. Vraie nouveauté ou simple gadget ? Je vous propose de découvrir ça ensemble.
Dès le premier lancement, on remarque que Windsurf est un éditeur basé sur Visual Studio Code avec un panneau supplémentaire nommé "Cascade" qui permet d'intéragir avec l'agent.
Cette agent dispose de 2 modes :
Il est aussi possible de choisir le modèle à utiliser avec le choix entre Claude (3.5, 3.7), GPT-4o, DeepSeek (v3, R1), o3-mini et Gemini 2.0 Flash et Cascade base (un modèle propre à Windsurf).
Pour tester Cascade, j'ai choisi un cas d'utilisation réel : migrer un système de recherche basé sur TypeSense vers PostgreSQL dans un projet Symfony avec une structure non conventionnelle (avec Claude 3.5).
L'agent commence par analyser la structure du projet et identifie les fichiers à modifier. Il propose ensuite des modifications que l'on peut accepter ou refuser de manière individuelle ou globale avec une barre de navigation. Les propositions de modifications sont affichées sous forme de différences avec la même interface que pour le versionning.
Tout de suite on est étonné par la capacité de l'agent à analyser le code et à entreprendre les actions pour répondre à la demande. Il analyse le problème comme le ferait un nouveau développeur sur le projet et comprend assez rapidement ce qu'il doit faire. En revanche, si on sort des problèmes classiques, il génère assez rapidement des propositions qui sont peu optimisées ou tout simplement incorrectes.
La solution est alors de lui donner les erreurs rencontrées pour qu'il essaie de trouver des solutions. L'expérience peut être très variante en fonction de la situation :
Cette seconde expérience rappelle d'ailleurs beaucoup ce qui se passe quand on débute dans la programmation et que l'on cherche trop à copier du code sans trop le comprendre.
Pour remédier à ce problème il faut s'efforcer d'être plus directif afin que l'agent puisse être bien plus efficace et prévisible. D'après mon expérience si je lui donne la logique en amont je peux vraiment gagner du temps pour des tâches répétitives.
Autre point crucial : l'utilisation de l'agent repose sur un système de crédits. Chaque action (création de fichier, recherche, lancement d'une commande) consomme des crédits spéciaux qui peuvent partir très vite et qui ne sont pas illimités (1 500 pour le compte pro, 3 000 pour l'ultimate).
D'après mon expérience, si on se repose complètement sur l'agent il est assez facile de consommer 100 crédits en une heure. Cette consommation peut être assez frustrante quand on réalise en plus que l'intervention de l'agent ne solutionne pas le problème qu'on lui soumet. Il faudra garder un oeil sur la réflexion de l'agent et ne pas hésiter à le couper si on voit qu'il par dans une mauvaise direction.
Windsurf intègre une autocomplétion capable d'inférer des modifications en fonction du fichier, des changements récents mais aussi du terminal et du presse papier (désactivé par défaut pour des raisons de sécurité).
C'est sur ce point que je trouve que l'éditeur est particulièrement efficace car il est capable de proposer des changements qui sont souvent cohérents avec les actions passées et il les propose à une vitesse impressionante.
En revanche, cette autocomplétion est à double tranchant car elle peut se déclencher de manière excessive et apporter plus de bruits que nécessaire. Je reste persuadé que l'expérience utilisateur peut être améliorée à ce niveau là :
Une touche pour activer/desactiver l'affichage des suggestions pourrait être une bonne solution.
Windsurf intègre un support du MCP (Model Contextu Protocol) qui permet de générer du code en fonction de contextes externes à l'éditeur. Il est par exemple possible de brancher l'agent à une base de données pour que l'éditeur puisse analyser sa structure, ou à Github pour qu'il puisse analyser les issues, les pull requests, etc.
De mon côté je n'ai pas testé cette fonctionnalité donc je ne saurais pas dire si elle est efficace ou non.
Windsurf est une proposition intéréssante et l'intégration de l'agent peut, dans certains cas, faire gagner un temps considérable sur des tâches répétitives. Cependant, il faudra composer avec le côté imprévisible des modèles d'intelligence artificielle et ne pas faire une confiance aveugle à ce qu'ils proposent.
Un autre point à considérer est la gestion des données car, pour fonctionner, le système doit envoyer le contexte du projet vers un service externe. Codium de son côté garantit la sécurité avec une politique stricte de non-rétention des données, pour leurs serveurs, mais aussi grâce à des accords avec les fournisseurs de modèles (OpenAI et Anthropic). Il n'y a pas, à l'heure actuelle, de moyen de relier l'éditeur avec son propre modèle (avec ollama par exemple).
Enfin, le système de double crédits (prompt et action) est assez étrange et rend la tarification plus complexe qu'elle ne devrait être. Par exemple pour 15$ on dispose de 1500 crédits d'action, mais pour 60$ (soit 4x le prix) on n'a que 3000 crédits (le double).
Si on met de côté ces problèmes je trouve que Windsurf est, à l'heure actuelle, la meilleur itération d'éditeur IA que j'ai pu tester.
Si vous le souhaitez vous pouvez tester Windsurf avec la formule gratuite qui vous donne accès à l'autocomplétion de manière illimité et à 200 crédits (agent) pour vous faire votre propre opinion.