16 Punkte von GN⁺ 2024-11-01 | 1 Kommentare | Auf WhatsApp teilen
  • Für Menschen, die mit großen Codebasen arbeiten, kann das Programmieren auf einem Laptop belastend sein
  • Die Lüfter laufen ständig, den Language Servern geht der Speicher aus, und Rebuilds dauern lange
  • In Zed lassen sich Projekte per SSH auf jedem Gerät öffnen
  • Die UI läuft vollständig lokal und liefert perfekte Grafik mit 120 FPS, während Language Server, Tasks und Terminal auf dem Remote-Server laufen und so Cloud-Hardware nutzen können

Aufbau einer Remote-Entwicklungsumgebung

  • Für das Remote-Code-Editing hat Zed an Infrastrukturänderungen gearbeitet, um SSH zu unterstützen
  • Dabei mussten verschiedene Probleme gelöst werden, etwa das Aufrechterhalten der SSH-Verbindung, das Einrichten des Remote-Servers und die Integration der Funktionen
  • Für die SSH-Verbindung wird die ControlMaster-Konfiguration verwendet, um pro Host eine einzelne Verbindung aufrechtzuerhalten
  • Nach der Verbindung wird ein Remote-Server heruntergeladen, der zum Betriebssystem und zur Architektur passt
  • Der mit musl kompilierte Remote-Server benötigt keine dynamische Verlinkung und kann daher auch auf älteren Distributionen laufen
  • Selbst wenn die Verbindung unterbrochen wird, läuft der Remote-Server weiter, und bei einer erneuten Verbindung bleiben die Language Server vollständig initialisiert erhalten
  • Nicht gespeicherte Änderungen werden lokal gesichert, damit keine Arbeit verloren geht

Zusammenarbeit und SSH-Projekte

  • Es war eine Herausforderung, SSH-Projekte gemeinsam mit der Kollaborationsfunktion nutzbar zu machen
  • An der Zusammenarbeit von zwei Personen über SSH können mindestens vier Knoten beteiligt sein, daher wurde das Synchronisationsprotokoll für die Kollaboration getestet
  • Project wurde in logische Teile aufgeteilt, damit es je nachdem, ob der Client Kollaborations-Host, SSH-Host oder Kollaborations-Gast ist, im Remote- oder lokalen Modus aktiviert werden kann
  • Durch neue Tests wurden jede Rolle und der Kollaborationsserver instanziiert, um zu prüfen, ob die Synchronisation korrekt funktioniert
  • Wenn man mit Freunden oder Kollegen an einem Projekt arbeitet, wird transparent behandelt, ob das Projekt auf dem Laptop liegt oder auf einem per SSH erreichbaren Gerät

Zusammenfassung von GN⁺

  • Zed bietet Entwicklerinnen und Entwicklern, die mit großen Codebasen arbeiten, eine effiziente Entwicklungsumgebung durch die Nutzung von Remote-Servern
  • Die Remote-Entwicklungsfunktion über SSH verbessert die Leistung durch die Nutzung von Cloud-Hardware
  • Die Kollaborationsfunktion unterstützt die Synchronisation zwischen mehreren Knoten und ermöglicht so reibungslose Zusammenarbeit
  • Zed ist unter macOS und Linux verfügbar und bietet Entwicklerinnen und Entwicklern eine neue Erfahrung
  • Ein anderes Projekt mit ähnlicher Funktion ist die Remote Development Extension von Visual Studio Code

1 Kommentare

 
GN⁺ 2024-11-01
Hacker-News-Kommentare
  • Die Nutzung von Zed mit SSH Remoting und Orbstack zum Programmieren auf dem Mac ist eine Traumumgebung

    • Auf Orbstack lässt sich in wenigen Sekunden eine Linux-Maschine starten, zu der man sich dann per SSH aus Zed verbindet, wodurch man eine schnelle Linux-Entwicklungsumgebung erhält
    • Es fühlt sich an wie die macOS-Version von WSL und VSCode, nur besser
    • Inspiriert wurde das Ganze von früheren Arbeiten von Mitchell Hashimoto
    • VMware und Docker Desktop wurden zwar genutzt, waren aber zu schwergewichtig, um eine flüssige und schnelle Entwicklungsumgebung zu bieten
    • Dank Zed und Orbstack gibt es nun ein schnelles und elegantes System
  • Es gibt Neugier bezüglich des Geschäftsmodells von Zed und ob es Open Source ist

    • Es besteht Sorge darüber, einen Workflow aufzubauen, der von einem Unternehmensprodukt abhängt
  • Zeds Remote-Development-Funktion installiert und führt ein Binärprogramm auf dem Remote-Host aus

    • Die lokale Maschine verbindet sich per SSH mit dem Remote-Server, und Zed lädt den Server herunter und startet ihn
  • Zed wird für die Entwicklung mit C, C++, Rust und Angular verwendet und die Zufriedenheit ist sehr hoch

    • Es wurden verschiedene Tools wie JetBrains, vscode und vim ausprobiert, aber Zed ist für das tägliche Coding überlegen
    • Wegen fehlender Debugging-Funktionen kann es nicht für C#-Entwicklung genutzt werden
    • Es zeichnet sich durch eine extrem schnelle Reaktionsgeschwindigkeit aus
  • Beim Entwickeln zwischen mehreren Computern hinweg werden tmux und nvim verwendet, um Sitzungen beizubehalten

    • Es scheint, dass weder Zed noch VS Code diesen Anwendungsfall unterstützen
  • Die hohe Geschwindigkeit von Zed ist gut, aber essenzielle Funktionen wie Inline-Fehlerhervorhebung und ein Button zum Ausführen von Code fehlen

    • Aktuell wirkt Zed IDE eher wie ein leichter Texteditor mit KI-Unterstützung
  • Bildbasiertes Screen Sharing könnte die bessere Wahl sein

    • Die Kollaborationsfunktionen von Zed sind gut, aber Kompatibilitätsprobleme mit anderen Apps sollten berücksichtigt werden
  • Gewünscht wird eine wirklich portable Remote-Editing-Lösung

    • Lösungen wie die von Zed oder vscode, bei denen ein Server auf dem Remote-Server installiert werden muss, sind dafür nicht geeignet
    • Wenn die Remote-Umgebungen unterschiedlich sind, ist es schwierig, Projekte einfach zu kopieren und lauffähig zu machen
    • Die Funktionen von Zed sind gut und entwickeln sich weiter, was positiv stimmt
  • Auf einem vertrauenswürdigen Remote-Server unbekannte Apps auszuführen, ist keine gute Idee

    • Alles lokal zu verarbeiten, ist schneller
    • Mit den eingebauten Funktionen von SSH lassen sich Dateien verarbeiten
  • Dass Emacs oder Tramp nicht erwähnt werden, ist beunruhigend

    • Es wirkt, als würde man sich nur auf den KI-Hype konzentrieren