3 Punkte von GN⁺ 2023-11-28 | 1 Kommentare | Auf WhatsApp teilen

Erfolge und Zukunftspläne des Code-Formatters Prettier

  • Prettier ist ein Code-Formatter für JavaScript, der verschiedene Coding-Styles sorgfältig behandelt und eine hohe Verbreitung erreicht hat.
  • Sobald die Arbeit an ternären Operatoren abgeschlossen ist, wird Prettier einen stabilen Zustand erreichen und sich danach auf Performance-Verbesserungen konzentrieren.
  • Prettier war bislang schnell genug, hatte aber mangels Konkurrenz wenig Anreiz für größere Leistungssteigerungen.

Konkurrenz und Belohnung für bessere Performance

  • Das Prettier-Team kündigte an, eine Belohnung von 10.000 Dollar zu zahlen, falls ein in Rust geschriebenes Projekt 95 % der Prettier-Test-Suite besteht.
  • Der CEO von Vercel, Guillermo Rauch, und napi.rs stellten zusätzliche Mittel bereit, wodurch die Gesamtprämie auf 22.500 Dollar anstieg.
  • Das Projekt Biome gewann die Prämie; in nur drei Wochen arbeiteten mehrere Personen zusammen, um die Kompatibilität zu verbessern.

Stärkung der Wettbewerbsfähigkeit von Prettier

  • Das Projekt Biome bietet eine mit Prettier kompatible, aber deutlich schnellere Implementierung und stellt Prettier damit vor die Herausforderung, seine Performance zu verbessern.
  • Fabio Spampinato entdeckte viele Ineffizienzen in der CLI von Prettier und plant, diese bis zum Jahresende zu verbessern.
  • Das Projekt Biome deckte Bugs und fragwürdige Entscheidungen in Prettier auf und eröffnete damit Chancen für Verbesserungen.

Spenden zur Unterstützung von Prettier

  • Prettier konnte dank Spenden verschiedener Unternehmen und Einzelpersonen dauerhaft erfolgreich bleiben.
  • Unternehmen wie Indeed, Frontend Masters, Sentry, Salesforce, Airbnb und Cybozu sowie Einzelpersonen wie Shintaro Kaneko und Suhail Doshi spendeten größere Beträge.
  • Dank dieser Spenden konnten in den vergangenen zwei Jahren monatlich 1,5k Dollar gezahlt werden, sodass Fisker Cheung und Sosuke Suzuki die Entwicklung von Prettier fortsetzen konnten.
  • Mit dem aktuellen Budget ist der Betrieb noch für 8 Monate gesichert; es werden zusätzliche Spenden erbeten.

Meinung von GN⁺

  • Prettier spielt im Bereich Code-Formatting eine wichtige Rolle, und der aktuelle Wettbewerb um Performance-Verbesserungen zeigt den Einsatz, die Developer Experience weiter zu verbessern.
  • Der Erfolg des Projekts Biome zeigt, wie Zusammenarbeit und Wettbewerb im Open-Source-Ökosystem positive Veränderungen bewirken können.
  • Dieser Artikel liefert ein interessantes Beispiel dafür, wie Kooperation und Konkurrenz in der Tech-Community die gegenseitige Weiterentwicklung fördern können.

1 Kommentare

 
GN⁺ 2023-11-28
Hacker-News-Kommentare
  • Man fragt sich vielleicht, warum das Prettier-Team andere Projekte finanziert! Tatsächlich hat Prettier als JavaScript-Code-Formatter eine dominante Stellung, und durch den Mangel an Konkurrenz fehlte der Anreiz, die Performance zu verbessern oder verschiedene Edge Cases zu beheben.

    • Es wird infrage gestellt, warum das Prettier-Team andere Projekte unterstützt. Es wird darauf hingewiesen, dass Prettier als JavaScript-Code-Formatter eine monopolartige Position einnimmt, es aber wegen fehlender Konkurrenz wenig Motivation für Performance-Verbesserungen oder Korrekturen besonderer Fälle gab.
  • Viele Leute erkennen diesen Teil nicht an und schreiben ihre Gründe in die Kommentare:

    • Das bedeutet, dass das Biome-Projekt durch das Nachbilden aller Tests viele Bugs und fragwürdige Entscheidungen von Prettier entdeckt hat und diese verbessern könnte.
  • Ich freue mich sehr darüber.

    • Bewunderung dafür, dass das Biome-Team schnell 95 % Kompatibilität mit Prettier erreicht hat. Es wird ein maximaler Geschwindigkeitsgewinn beim JavaScript-Formatting mit Rust erwartet, ähnlich dem Trend beim Python-Formatter ruff. Wasmer hat eine Bounty von 2.500 $ dafür ausgelobt, Biome zu WASIX zu kompilieren, und es wird gehofft, dass Biome bald auf Wasmer laufen kann.
  • Geschwindigkeit ist immer willkommen, aber ich wünschte, Prettier wäre etwas weniger dogmatisch.

    • Es wird empfunden, dass Prettier beim Code-Formatting zu dogmatisch ist, insbesondere weil es sein eigenes Zeilenlängenformat nicht beibehalten kann. Im Vergleich zu anderen Code-Formattern wird mit Prettier formatierter Code als weniger lesbar angesehen.
  • Ich bin immer noch wütend darüber, dass all meine eslint-Plugins für Prettier vollkommen brauchbare Linter entfernt haben.

    • Prettier wird als zu aufdringlich und schwer nachvollziehbar empfunden und als noch ein weiteres Tool, um das niemand gebeten hat.
  • Das bedeutet, dass wir uns jetzt auf den nächsten wichtigen Aspekt konzentrieren können: Performance. Prettier ist an sich nicht schnell, aber für die meisten Anwendungsfälle schnell genug. Das war immer unbefriedigend, deshalb wollten wir etwas dagegen tun. Es gibt keinen besseren Weg als freundschaftlichen Wettbewerb.

    • Um die Unzufriedenheit mit der Performance von Prettier anzugehen, wurde eine Bounty von 10.000 $ auf ein in Rust geschriebenes Projekt ausgesetzt, das zum Ziel hat, 95 % der Prettier-Testsuite zu bestehen.
  • Obwohl das Portieren nach Rust im Trend liegt, wird der Geschwindigkeitsgewinn erheblich sein, da Prettier bei jedem Speichern ausgeführt wird. Ich werde Biome bald ausprobieren. Glückwunsch an das Biome-Projekt!

    • Das Portieren nach Rust ist zwar im Trend, aber es wird ein erheblicher Geschwindigkeitsgewinn erwartet, da Prettier bei jedem Speichern läuft. Positive Reaktion auf das Biome-Projekt.
  • Wo sind die Benchmarks für Biome? Wie viel bessere Performance liefert es genau im Vergleich zu Prettier?

    • Es gibt Fragen zu den Performance-Benchmarks von Biome. Es besteht Neugier, wie viel bessere Performance es im Vergleich zu Prettier bietet.
  • Sagt dieser Beitrag, dass sie das getan haben, um sich selbst zur Verbesserung der JavaScript-Version zu motivieren?

    • Es gibt Zweifel daran, ob ein neues Projekt als Motivation gestartet wurde, um die JavaScript-Version zu verbessern.
  • Also ersetzt das nicht die Hauptimplementierung? Haben sie einfach nur ein neues kompatibles Projekt finanziert, das in Rust geschrieben ist?

    • Es wird gefragt, ob die Finanzierung eines neuen kompatiblen, in Rust geschriebenen Projekts nicht die Hauptimplementierung ersetzt.