← Neueste Arbeiten
💻 computer science

Optimizing an IDE for an Evolving Language Ecosystem

Dieser Beitrag skizziert eine Strategie für den Aufbau einer hochleistungsfähigen IDE für die sich weiterentwickelnde Move-Smart-Contract-Sprache, indem das Language Server Protocol und der bestehende Kerncompiler genutzt werden, und erläutert gleichzeitig die erforderlichen Infrastruktur-Optimierungen sowie die gewonnenen Erkenntnisse zur Unterstützung des Wachstums des Ökosystems.

Ursprüngliche Autoren: Adam Welc, Todd Nowacki, Dario Russi, Cameron Swords, Timothy A. K. Zakian

Veröffentlicht 2026-05-19
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Adam Welc, Todd Nowacki, Dario Russi, Cameron Swords, Timothy A. K. Zakian

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie bauen eine brandneue Stadt von Grund auf. Sie haben die Baupläne für die Gebäude (die Programmiersprache) und das Bauunternehmen (den Compiler). Doch bevor jemand dort tatsächlich wohnen oder etwas Nützliches bauen kann, benötigen sie einen superklugen Assistenten, der ihnen hilft, sich durch die Straßen zu navigieren, spezifische Adressen zu finden und Fehler während des Baus zu beheben. In der Welt des Codings wird dieser Assistent IDE (Integrierte Entwicklungsumgebung) genannt.

Der Artikel des Teams von Mysten Labs beschreibt, wie sie diesen „superklugen Assistenten" für eine neue Stadt namens Move (eine Sprache für Smart Contracts) gebaut haben. Hier ist die Geschichte, wie sie es taten, unter Verwendung einfacher Analogien.

Das große Dilemma: Einen neuen Motor bauen oder den bestehenden nutzen?

Wenn Sie einen Automotor benötigen, um Ihren neuen Assistenten anzutreiben, haben Sie zwei Möglichkeiten:

  1. Einen brandneuen Motor von Grund auf bauen, nur für den Assistenten. Das ist so, als würden Sie einen speziellen Mechaniker einstellen, um einen maßgeschneiderten Motor zu bauen, der nur eine Sache tut: dem Fahrer zu helfen. Er könnte perfekt für den Job sein, aber es dauert lange und kostet viel Geld.
  2. Den Motor nutzen, den Sie bereits haben. Die Stadtplaner hatten bereits einen massiven, leistungsstarken Motor (den Compiler), der darauf ausgelegt war, Baupläne in fertige Gebäude zu verwandeln.

Das Team entschied sich für Option 2. Sie beschlossen, ihren Assistenten an den bestehenden Stadt-Motor anzuschließen.

  • Das Risiko: Der Motor wurde gebaut, um Gebäude fertigzustellen, nicht um Menschen zu helfen, während sie noch die Baupläne zeichnen. Er könnte zu langsam oder zu schwerfällig sein.
  • Die Belohnung: Da der Motor bereits existierte, konnten sie den Assistenten fast sofort in Betrieb nehmen, anstatt Jahre zu warten, bis ein neuer gebaut ist.

Das Problem: Der Motor war zu langsam

Zunächst funktionierte der Assistent, war aber träge. Stellen Sie sich vor, Sie bitten eine Bibliothekarin, ein Buch zu finden. Wenn die Bibliothekarin zum hinteren Teil der Bibliothek laufen, jedes einzelne Regal überprüfen und jedes Buch von vorne bis hinten durchlesen muss, nur um eine Seite zu finden, werden Sie lange warten müssen.

Als die Stadt Move wuchs, wurde die Bibliothek größer. Jedes Mal, wenn ein Entwickler eine winzige Änderung an seinem Code vornahm, musste der Assistent die gesamte Bibliothek (den Code und alle seine Abhängigkeiten) von vorne bis hinten neu lesen. Das dauerte über eine Sekunde, was sich für einen Entwickler wie eine Ewigkeit anfühlte.

Die Lösungen: Wie sie die Dinge beschleunigten

Das Team erkannte, dass sie den Motor optimieren mussten, ohne ihn neu zu bauen. Sie wandten drei Haupt-„Feinjustierungen" an:

1. Die „Vorgelesene" Bibliothek (Vorkompilieren von Abhängigkeiten)

Das Problem: Der Assistent las die Standardbibliotheksbücher (wie Wörterbücher oder Mathematik-Leitfäden) jedes Mal neu, wenn ein Entwickler seine eigene Geschichte änderte.
Die Lösung: Sie erkannten: „Hey, niemand ändert das Wörterbuch!" Also schufen sie ein vorgelesenes Regal. Sie lasen die Standardbibliotheksbücher einmal, notierten die wichtigen Punkte und legten sie auf ein spezielles Regal. Jetzt, wenn der Assistent ein Wort überprüfen muss, greift er einfach nach den Notizen auf dem Regal, anstatt zum hinteren Teil der Bibliothek zu laufen.

  • Ergebnis: Dies verkürzte die Wartezeit von fast einer Sekunde auf einen Bruchteil einer Millisekunde.

2. Die „Stichproben"-Strategie (Inkrementelle Kompilierung)

Das Problem: Selbst mit dem vorgelesenen Regal versuchte der Assistent, wenn ein Entwickler eine 100-seitige Geschichte änderte, immer noch die gesamte Geschichte neu zu lesen, selbst die Teile, die sich nicht geändert hatten.
Die Lösung: Sie lehrten den Assistenten, faul zu sein (auf eine gute Weise). Wenn ein Entwickler nur Seite 50 änderte, las der Assistent nur Seite 50 neu. Für die anderen 99 Seiten sagte er einfach: „Ich kenne diesen Teil bereits, er hat sich nicht geändert."

  • Ergebnis: Dies ließ den Assistenten auch in riesigen Codebasen sofort reagieren.

3. Der „Geteilte Rucksack" (Speicheroptimierung)

Das Problem: Der Assistent trug einen riesigen Rucksack. Er war so schwer, dass, wenn ein Entwickler drei verschiedene Projekte öffnete, der Rucksack des Assistenten zu schwer wurde, um getragen zu werden, was den Computer verlangsamte oder abstürzen ließ. Er trug jedes Detail jedes Buches, selbst die Details, die der Assistent gerade nicht sehen musste.
Die Lösung: Sie organisierten den Rucksack neu. Sie warfen die schweren, unnötigen Details weg und behielten nur die wesentlichen Notizen. Darüber hinaus erkannten sie, dass wenn drei Entwickler an Projekten arbeiteten, die dasselbe Wörterbuch verwendeten, sie nicht drei separate Wörterbücher benötigten. Sie teilten ein Wörterbuch unter allen drei Projekten.

  • Ergebnis: Der Rucksack wurde viel leichter, sodass der Assistent mehrere Projekte gleichzeitig bewältigen konnte, ohne ins Schwitzen zu kommen.

Die gelernten Lektionen

Der Artikel schließt mit ein paar „Faustregeln" für jeden ab, der versucht, einen ähnlichen Assistenten für eine neue Sprache zu bauen:

  • Bauen Sie nicht alles auf einmal: Sie brauchen nicht am ersten Tag den perfekten Motor. Beginnen Sie mit dem, was Sie haben, und justieren Sie es nach, während die Stadt wächst.
  • Erwarten Sie, Dinge zu cachen: Planen Sie immer, Ihre Arbeit zu speichern (wie das vorgelesene Regal), damit Sie sie nicht zweimal erledigen müssen.
  • Achten Sie auf Ihr Gewicht: Seien Sie vorsichtig, wie viel „Zeug" (Speicher) Sie tragen. Nur weil Sie einen schweren Rucksack tragen können, heißt das nicht, dass Sie es sollten.
  • Seien Sie widerstandsfähig: Wenn ein Entwickler einen Tippfehler macht, sollte der Assistent nicht aufhören und aufgeben. Er sollte sagen: „Ich sehe einen Fehler, aber ich werde Ihnen trotzdem mit dem Rest des Satzes helfen."

Das Fazit

Das Team verwandelte erfolgreich einen langsamen, schweren Bau-Motor in einen schnellen, wendigen Assistenten, indem sie klug damit umgingen, wie sie die vorhandenen Maschinen nutzten. Sie bauten keinen neuen Motor; sie ließen den alten nur viel effizienter laufen. Dies ermöglichte es Entwicklern, ihre Smart-Contract-Städte schnell und ohne Frustration zu bauen.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →