Découverte de Zed : un éditeur de code moderne et rapide

Après plusieurs années d’utilisation intensive de Vscodium (la version libre de VSCode), j’ai récemment pris le temps de tester Zed. Bien que je ne compte pas pour le moment migrer vers Zed, je trouve tout de même l’IDE très intéressant. Ce test a été une véritable révélation en termes de performance et d’expérience utilisateur.

Pourquoi s’intéresser à Zed ?

Vscodium a été une alternative formidable à VSCode depuis sa création. Sans les composants propriétaires et la télémétrie, il permet d’avoir un éditeur moderne et complet en totale conformité avec la philosophie open source.

Mais Vscodium souffre des limites de VSCode :

  1. Performance : Malgré sa légèreté apparente, VSCode devient de plus en plus lourd. Le démarrage, les extensions, et surtout l’indexation des gros projets sont de plus en plus lents.

  2. Consommation mémoire : Il n’est pas rare de voir VSCode consommer plus de 4 Go de RAM sur un projet complexe.

  3. Écosystème d’extensions : Alors que l’écosystème est riche, beaucoup d’extensions sont mal maintenues ou se concentrent sur la monétisation plutôt que sur l’expérience.

Zed : Une nouvelle approche

Zed est un éditeur de code moderne développé par Zed Industries, fondée par les créateurs d’Atom. Ce n’est pas une copie de VSCode, mais une refonte complète de l’approche des éditeurs de code.

Points forts de Zed

  • Performance exceptionnelle : Zed est écrit en Rust et utilise une architecture multithreadée qui tire pleinement parti des CPU modernes.
  • Collaboration intégrée : Le système de collaboration est natif et fluide (comme le “Codespaces” de GitHub).
  • Édition à distance native : Contrairement à Vscodium qui nécessite des extensions, Zed propose une édition à distance native et performante.
  • UI minimaliste mais puissante : Zed évite la surcharge d’extensions en intégrant directement les fonctionnalités essentielles.
  • Modèle économique clair : L’éditeur est gratuit pour l’usage individuel, avec un modèle SaaS pour les équipes.

Configuration optimale

Zed utilise JSON pour sa configuration (~/.config/zed/settings.json). Voici ma configuration typique :

{
  "ui_font_size": 16,
  "buffer_font_size": 14,
  "theme": "Cobalt2",
  "buffer_font_family": "JetBrains Mono Nerd Font",
  "project_panel": {
    "fold_calls": true,
    "auto_expand": true
  },
  "editor": {
    "wrap_lines": false,
    "scroll_past_end": true,
    "use_autoclose": true,
    "show_virtual_text": true
  }
}

Découverte : Étapes pratiques

1. Installation

Zed est disponible sur la plupart des distributions Linux via différentes méthodes :

Arch Linux (AUR) :

yay -S zed

Avec le script d’installation automatique :

curl -f https://zed.dev/install.sh | sh

Ou manuellement : documentation officielle.

2. Importation des préférences

Pour faciliter la transition, les raccourcis clavier dans Zed sont très proches de VS Code, donc 90% de vos réflexes fonctionneront.

3. Transfert des extensions

Zed n’utilise pas le même système d’extensions. Au lieu de cela, il utilise un système d’Extensions (souvent basées sur WASM) qui sont installées nativement.

Les fonctionnalités les plus demandées sont intégrées :

  • Git : Intégré avec support pour GitHub/GitLab
  • LSP : Support natif du protocole LSP
  • Terminal : Intégré avec support multi-panneau
  • Debug : Support pour plusieurs langages

Pour les fonctionnalités spécifiques à certaines extensions, Zed propose souvent des alternatives :

Extension VSCodeAlternative dans Zed
PrettierFormatage natif
ESLintLSP intégré (eslint-lsp)
GitLensHistorique intégré
PythonServeur de langage Python (pylsp)

4. Configuration d’un serveur OpenAI compatible (Ollama, vLLM, etc.)

Zed supporte nativement les API compatibles OpenAI, ce qui permet d’utiliser des modèles locaux comme Ollama, vLLM, ou tout autre serveur LLM auto-hébergé.

Configuration dans ~/.config/zed/settings.json

{
  "language_models": {
    "openai_compatible": {
      "ollama": {
        "api_url": "http://localhost:11434/v1",
        "available_models": [
          {
            "name": "qwen-coder-next:80b",
            "display_name": "Qwen Coder 80B",
            "max_tokens": 500000
          }
        ]
      }
    }
  },
  "assistant": {
    "version": "2",
    "default_model": {
      "provider": "openai_compatible",
      "model": "qwen-coder-next:80b"
    }
  }
}

[!TIP] Les variables d’environnement dans Zed sont supportées via la syntaxe ${VARIABLE_NAME}. Vous pouvez donc stocker vos clés API dans un fichier .env ou dans votre shell.

Comparaison des performances

Pour avoir une idée de l’amélioration, voici mes mesures sur un projet TypeScript de taille moyenne (~5000 fichiers) :

MétriqueVscodiumZed
Démarrage~1.5s~0.3s
RAM au démarrage~300 Mo~80 Mo
RAM avec indexation~2.5 Go~450 Mo
Recherche dans le projet~8s~1.2s
Formatage de fichier~2s~0.3s

Les gains sont spectaculaires, surtout sur un projet de plus grande taille.

Conclusion

Bien que je ne compte pas pour le moment migrer vers Zed, l’IDE est indéniablement intéressant. La performance, la simplicité et l’approche moderne de Zed en font un outil particulièrement pertinent. Je vais garder un œil attentif sur son évolution.

Si vous êtes fatigué par la lourdeur de VSCode/Vscodium et que vous cherchez un éditeur plus léger mais tout aussi puissant, je vous recommande chaudement de tester Zed. La courbe d’apprentissage est très douce, surtout si vous êtes déjà habitué aux raccourcis de VSCode.

[!TIP] Zed est en version pré-1.0 (0.x), mais l’éditeur est déjà très stable pour une utilisation quotidienne. Le développement est très actif avec des mises à jour hebdomadaires.

Ressources utiles

Sources

Catégories : DevOps 
Tags: Outils LLM vLLM 

Suggestions de lecture :