16 points par GN⁺ 2024-11-01 | 1 commentaires | Partager sur WhatsApp
  • Pour les personnes qui travaillent sur de vastes bases de code, programmer sur un ordinateur portable peut être contraignant
  • Les ventilateurs tournent en continu, les serveurs de langage manquent de mémoire et les temps de reconstruction sont longs
  • Avec Zed, il est possible d’ouvrir un projet sur n’importe quelle machine via SSH
  • L’interface utilisateur s’exécute entièrement en local et offre des graphismes fluides à 120 images par seconde, tandis que les serveurs de langage, les tâches et le terminal s’exécutent sur le serveur distant afin de tirer parti du matériel cloud

Mise en place d’un environnement de développement distant

  • Pour l’édition de code à distance, Zed a fait évoluer son infrastructure afin d’ajouter la prise en charge de SSH
  • Il a fallu résoudre divers problèmes, comme le maintien de la connexion SSH, la mise en place du serveur distant et l’intégration des fonctionnalités
  • Pour la connexion SSH, Zed utilise la configuration ControlMaster afin de maintenir une connexion unique par hôte
  • Après la connexion, le serveur distant adapté au système d’exploitation et à l’architecture est téléchargé
  • Le serveur distant compilé avec musl ne nécessite pas de liaison dynamique, ce qui lui permet de fonctionner même sur d’anciennes distributions
  • Même si la connexion est interrompue, le serveur distant continue de fonctionner et, lors de la reconnexion, les serveurs de langage restent dans un état entièrement initialisé
  • Les modifications non enregistrées sont sauvegardées en local pour éviter toute perte de travail

Collaboration et projets SSH

  • Faire en sorte que les projets SSH fonctionnent avec la collaboration représentait un défi
  • Jusqu’à quatre nœuds peuvent être impliqués dans une session de collaboration à deux via SSH, ce qui a conduit à tester le protocole de synchronisation de collaboration
  • Project a été divisé en composants logiques pouvant être activés en mode distant ou local selon que le client est l’hôte de collaboration, l’hôte SSH ou l’invité de collaboration
  • De nouveaux tests instancient chaque rôle ainsi que le serveur de collaboration pour vérifier que la synchronisation s’effectue correctement
  • Lorsqu’on travaille sur un projet avec un ami ou un collègue, le fait que le projet se trouve sur l’ordinateur portable ou sur une machine accessible en SSH est géré de manière transparente

Le résumé de GN⁺

  • Zed offre aux développeurs travaillant sur de grandes bases de code un environnement de développement efficace en s’appuyant sur des serveurs distants
  • La fonctionnalité de développement distant via SSH améliore les performances en tirant parti du matériel cloud
  • La fonctionnalité de collaboration prend en charge la synchronisation entre plusieurs nœuds afin de permettre un travail collaboratif fluide
  • Zed est disponible sur macOS et Linux et propose une nouvelle expérience aux développeurs
  • Parmi les autres projets offrant des fonctions similaires, on trouve Remote Development Extension de Visual Studio Code

1 commentaires

 
GN⁺ 2024-11-01
Avis Hacker News
  • Programmer sur Mac avec Zed, le SSH Remoting et Orbstack constitue un environnement de rêve

    • Orbstack permet de lancer une machine Linux en quelques secondes et de s’y connecter en SSH depuis Zed pour bénéficier d’un environnement de développement Linux rapide
    • Cela ressemble à une version macOS de WSL et VSCode, mais en mieux
    • Le tout a été inspiré par d’anciens travaux de Mitchell Hashimoto
    • VMware et Docker Desktop ont été utilisés, mais ils étaient trop lourds pour offrir un environnement de développement fluide et rapide
    • Grâce à Zed et Orbstack, on obtient un système rapide et élégant
  • Des interrogations subsistent sur le modèle économique de Zed et sur son caractère open source

    • Construire un workflow dépendant d’un produit d’entreprise suscite des inquiétudes
  • La fonctionnalité de développement à distance de Zed installe et exécute un binaire sur l’hôte distant

    • La machine locale se connecte au serveur distant via SSH, puis Zed télécharge et lance le serveur
  • Zed est utilisé pour le développement en C, C++, Rust et Angular, avec une très grande satisfaction

    • De nombreux outils ont été essayés, comme JetBrains, vscode ou vim, mais Zed se montre supérieur pour le codage au quotidien
    • L’absence de fonctions de débogage empêche son utilisation pour le développement C#
    • Il se distingue par une réactivité exceptionnelle
  • Pour développer en passant d’un ordinateur à l’autre, tmux et nvim sont utilisés afin de conserver les sessions

    • Zed et VS Code ne semblent pas prendre en charge ce cas d’usage
  • La grande rapidité de Zed est appréciée, mais il lui manque des fonctions essentielles comme le surlignage des erreurs en ligne et un bouton pour exécuter le code

    • Pour l’instant, Zed IDE donne davantage l’impression d’un éditeur de texte léger avec prise en charge de l’IA
  • Le partage d’écran basé sur l’image pourrait être une meilleure option

    • Les fonctions de collaboration de Zed sont bonnes, mais il faut tenir compte des problèmes de compatibilité avec d’autres applications
  • Un vrai solution d’édition à distance portable est souhaitée

    • Les solutions de Zed ou vscode, qui nécessitent d’installer un serveur sur la machine distante, ne conviennent pas
    • Quand les environnements distants diffèrent, il est difficile de simplement copier un projet et de le faire fonctionner facilement
    • Les fonctionnalités de Zed sont bonnes et progressent, ce qui est vu positivement
  • Exécuter une application inconnue sur un serveur distant de confiance n’est pas une bonne idée

    • Tout traiter en local est plus rapide
    • Les fonctions intégrées de SSH peuvent être utilisées pour gérer les fichiers
  • L’absence de mention d’Emacs ou de Tramp suscite des inquiétudes

    • Cela donne l’impression que l’attention est portée uniquement sur la vague de l’IA