Windsurf, le meilleur éditeur IA ?

Posté le 19 mars 2025 - Astuces pour développeurs - Par Grafikart - Proposer une correction

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.

Cet article est sponsorisé par Codeium, qui m'a fourni un compte ultimate pour cette découverte.

Installation et prise en main

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 :

  • Écriture, l'agent sera capable de modifier des fichiers lors de ses réponses. Ces modifications coûteront des crédits spécifiques.
  • Chat, pour poser des questions.

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).

Cas d'usage

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.

Attention aux erreurs

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 :

  • Si l'agent trouve la bonne solution, l'expérience est magique.
  • Si l'agent s'engage dans la mauvaise direction, tout s'écroule et on a l'impression de revivre l'expérience d'un novice dans le développement.

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.

  1. Du nouveau code est ajouté
  2. Le code ajoute une erreur
  3. On trouve du code pour corriger l'erreur du point 2
  4. La correction génère une nouvelle erreur... et on répète les étapes 2 et 3.

Meilleur si bien guidé

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.

  • Générer le code de base pour une nouvelle fonctionnalité (model, controller, validation, vues classique) en se basant sur l'approche du projet. Puis modifier à la main à l'aide de l'autocomplétion pour finaliser le code.
  • Générer des tests à partir de plusieurs fichiers ou créer un test à partir de la description du problème.

Une intervention coûteuse

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.

L'autocomplétion

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à :

  • L'affichage permanent des suggestion au milieu du code rend le code moins lisible.
  • L'utilisation de la touche Tab entre en conflit avec les fonctionnalités de base de l'éditeur et on peut parfois accepter des modifications sans le savoir.

Une touche pour activer/desactiver l'affichage des suggestions pourrait être une bonne solution.

Support du MCP

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.

Mon avis

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.