2 Punkte von GN⁺ 2024-02-19 | 1 Kommentare | Auf WhatsApp teilen
  • Nathan, Max und Antonio, die Mitgründer von Zed, wurden in einem Gespräch zu den Gründen technischer Entscheidungen, zur Bedeutung von Rust und zur Absicht, den vollständigen Tech-Stack selbst zu besitzen, befragt.
  • Sie beantworten die Fragen erneut und teilen eine redigierte Version eines einstündigen Gesprächs.

Von Atom zu Zed: Eine zehnjährige Reise

  • Die drei Mitgründer arbeiten nun seit etwa zehn Jahren zusammen und entschieden sich, nach der Entwicklung von Atom, Zed zu bauen.
  • Die Vision von Zed ist eine verfeinerte, konkretisierte Version der frühen Atom-Vision; die technischen Entscheidungen sind eng mit dieser Vision verknüpft.
  • Technische Entscheidungen wie Rust, GPU-Beschleunigung und CRDTs sind entscheidend, um die Ziele von Zed zu erreichen.

Technische Entscheidungen und Vision

  • Die Vision von Zed ist es, einen leichten Texteditor zu bauen, der bei Bedarf IDE-Funktionen bietet.
  • Während der Entwicklung von Atom konnten die Vision nicht vollständig verwirklicht werden, weil technische Grenzen und die damals fehlende technische Reife der Entwickler dazwischenstanden.
  • Mit dem Aufkommen von Rust ergab sich die Chance, diese Grenzen zu überwinden.

Die Grenzen von Atom und ein neuer Anfang

  • Während der Atom-Entwicklung traten Leistungsprobleme aufgrund der Grenzen von JavaScript und der Einschränkungen von Webtechnologien auf.
  • 2017 wurde entschieden, Zed nach dem Erkennen der Grenzen der bestehenden Plattform von Grund auf neu zu starten.
  • Mit Rust und GPU-Beschleunigung sollte die Leistung verbessert werden.

Die Wirkung von Rust

  • Rust bietet eine hochrangige Abstraktion bei exzellenter Leistung.
  • Rusts "Zero-Cost-Abstraktion" spielt eine zentrale Rolle bei der Entwicklung von Texteditoren.
  • Auch mit C++ oder C lässt sich ähnliche Leistung erzielen, doch Rust bietet den Entwicklern eine einfachere und sicherere Entwicklungserfahrung.

Bedeutung der Kontrolle über den gesamten Stack

  • Das Zed-Team besitzt den kompletten Tech-Stack, von tree-sitter bis zu GPUI, dem GPU-beschleunigten UI-Framework.
  • Den gesamten Stack zu besitzen ist eine bewusste Entscheidung, die vollständige Kontrolle über Leistung und Funktionen ermöglicht.

Zwischen perfekter Abstraktion und Dringlichkeit

  • Es ist wichtig, nur das Nötige und nur im nötigen Umfang zu bauen und auf Basis des Gelernten bei Bedarf zu überdenken.
  • Den Kernbereichen wird genügend Zeit gegeben, damit sie eine hohe Qualität und Leistung sicherstellen.

Beziehung zwischen Entwicklerwerkzeugen und Technologie

  • Nutzer von Entwicklerwerkzeugen interessieren sich möglicherweise stärker für Technologie, und diese beeinflusst Leistung und Funktionen, die den Anwendern bereitgestellt werden.
  • Ein in Rust geschriebenes Zed erleichtert es Entwicklern, Beiträge zu leisten, und fördert dadurch die Beteiligung der Community.

GN⁺-Meinung

  1. Der Entstehungsprozess von Zed zeigt, wie wichtig technische Entscheidungen für Vision und Leistung eines Produkts sind. Die Wahl einer modernen Programmiersprache wie Rust kann die Produktivität der Entwickler und die Produktleistung gleichzeitig steigern.
  2. Der Besitz des gesamten Tech-Stacks gibt dem Zed-Team die Flexibilität, Leistung zu optimieren und Funktionen zu entwickeln, was eine entscheidende Rolle beim Bau eines High-Performance-Texteditors spielt.
  3. Bei Entwicklerwerkzeugen kann die verwendete Technologie den Endnutzer stärker beeinflussen und damit darüber entscheiden, wie Zed in der Entwickler-Community angenommen wird. Die Nutzung von Rust macht es attraktiver, zu Zed beizutragen, und wirkt sich positiv auf das Wachstum und die Weiterentwicklung des Produkts aus.

1 Kommentare

 
GN⁺ 2024-02-19
Hacker News Kommentare
  • Ein benutzerdefiniertes UI-Framework kann im Moment zwar Spaß machen, kann aber bei der Umsetzung von Zugänglichkeit problematisch werden. Es ist nicht trivial, Barrierefreiheit in einem benutzerdefinierten Framework ohne Leistungseinbußen umzusetzen, und es erfordert komplexe plattformspezifische Arbeit. Da Zed sich nicht als simpler Editor, sondern als Kollaborationstool positioniert, ist es wichtig, dass alle Entwickler es nutzen können.

    Es gibt möglicherweise ein Tool namens AccessKit, das die Arbeit etwas erleichtern könnte, aber unklar ist, ob es für große Editoren geeignet ist.

  • Vor der Nutzung des Zed-Texteditors sollte man auf die Nutzungsvereinbarung achten. Nutzerinhalte werden als „User Content“ klassifiziert und nur dann an die Umgebung übermittelt, wenn Projekte mit anderen Zed-Nutzern geteilt und gemeinsam bearbeitet werden. Der Zugriff auf User Content ist bei Zed nur für Debugging und zur Verbesserung der Lösung eingeschränkt.

    Auf dieser Grundlage können Nutzer ihre eigenen Schlüsse ziehen.

  • Zed als Texteditor ist sehr vielversprechend, aber ohne Unterstützung für Remote Hosts/Entwicklungscontainer kann ich ihn nicht einsetzen. Diese Funktion ist in VSCode für meinen Workflow essenziell, denn ich nutze meinen Mac lieber als Hub zum Coden in VM- und Container-Umgebungen. Das verbessert die Projektisolation und die Sicherheitslage.

  • Ein großartiges Interview mit Einblicken in die Herangehensweise von Entwicklern. Es regt stark zum Nachdenken darüber an, aus vielen Blickwinkeln auf Entwicklung zu schauen.

    Einige Entwickler denken, der Name „Zed“ sei bereits in Zig ein perfekter Name für einen Texteditor, aber tatsächlich wäre „Zag“ passender.

  • Ich verwende Zed nicht, habe aber gesehen, wie José Valim es beim Live-Streaming von Coding-Sessions nutzt. Ich nutze hauptsächlich VSCode, aber die „Find All“-Funktion in Zed ist beeindruckend. Ähnlich wie bei VSCode öffnet sie ein Ergebnisfenster, das Snippets aus allen übereinstimmenden Dateien anzeigt, aber in Zed kann man direkt dort die Snippets bearbeiten. Das steht im Gegensatz zu VSCode, wo man auf Suchergebnisse klicken muss, um die Datei zu öffnen und zu bearbeiten.

  • Zed funktioniert weder unter Windows noch unter Linux. Bitte sagt Bescheid, wenn es auf diesen Plattformen läuft.

  • Das Interview war wirklich gut, und ich war beeindruckt, wie viel über „gold-plate“ nachgedacht wurde. Die beste Arbeit entsteht meist beim zweiten oder einem späteren Versuch. Ich bin neugierig auf die Pläne, mit denen sich die Konfiguration von Zed per Skript schreiben lässt. Ich habe Zed noch nicht viel genutzt, aber es gibt Werkzeuge wie Neon, die für Nutzer von VSCode und Atom hilfreich sein könnten.

  • Ich habe Zed ausprobiert und es fühlt sich wie VSCode an. Die Multiplayer-Funktion ist besser als Live Share, aber um zum Wechsel zu überzeugen, braucht es mehr. Wenn Zed Xcode ersetzen könnte, würde ich eher zu Zed wechseln. Ich fühle mich bei Xcode unwohl und wünsche mir ein iOS-Entwicklungsgefühl wie bei Android Studio.

  • Ich bevorzuge native Apps, aber im Moment muss ich VSCode verwenden. Schade, dass die Blinkung des Cursors in VSCode so viel Strom verbraucht. Zed ist leichtgewichtig und schnell, aber ich bin an Jupyter-Notebook-Support und Remote-Entwicklung in einer Ubuntu-Box auf dem Mac gewöhnt, sodass VSCode gut funktioniert. Ich hoffe, ihr macht genug weiter, bis Zed meinen Workflow unterstützt.

  • Ich habe die About-Seite von Zed angesehen und die Echtzeit-Coding-Funktion wirkt nützlich. Es scheint ein spannendes Projekt für Entwickler zu sein, das erlaubt, Algorithmen zu schreiben, die Performance zu optimieren und GPU-Programmierung zu betreiben. Aber ich frage mich, ob wir noch einen weiteren Texteditor brauchen, der nicht auf Funktionsebene mit Vim und Terminal-Multiplexern gleichzieht.