9 Punkte von GN⁺ 2023-09-21 | 4 Kommentare | Auf WhatsApp teilen
  • Svelte 5 führt eine Funktion namens Runes ein, die die Reaktivität von JavaScript verbessert
  • 2019 machte Svelte 3 JavaScript zu einer reaktiven Sprache
    • Der Compiler wandelte deklarative Komponenten in optimiertes JavaScript um
  • Runes wenden diese Reaktivität überall an
    • Anwendung in Funktionsform wie let count = $state(0);
    • Von Compile-time-Reaktivität zu Runtime-Reaktivität
  • Mit Runes wird Reaktivität über die Grenzen von .svelte-Dateien hinaus erweitert, was das Kapseln und Wiederverwenden von Logik zwischen Komponenten vereinfacht
  • Die neue Version von Svelte basiert auf Signals, ähnlich wie sie früher von Knockout verwendet wurden. Die Umsetzung unterscheidet sich etwas, da sie als interne Implementierung statt als direkte Schnittstelle genutzt werden
  • Mit den Runes $derived und $effect werden die Abhängigkeiten von Ausdrücken beim Auswerten bestimmt, was die Runtime-Reaktivität verbessert
  • Runes machen mehrere bestehende Konzepte überflüssig, vereinfachen damit das Svelte-Framework und erleichtern den Aufbau und die Wartung von Apps
  • Ziel ist für die meisten Nutzer ein ersetzbarer Ansatz, und die neuen Funktionen sind optional nutzbar, sodass bestehende Komponenten weiterhin funktionieren
  • Ein Veröffentlichungstermin für Svelte 5 steht noch nicht fest; die Arbeit daran läuft noch

4 Kommentare

 
ryuheechul 2023-09-21
 
rjcnd105 2023-09-21

Scheint stark von Qwik beeinflusst zu sein.

 
GN⁺ 2023-09-21
Hacker-News-Kommentare
  • Der Artikel behandelt die Veröffentlichung von Svelte 5 und insbesondere das neue Feature „Runes“.
  • Einige Kommentierende vergleichen die neuen Funktionen von Svelte mit Zustands- und abgeleiteten/berechneten Variablen in Vue und Solid.
  • Es gibt eine Debatte über die Auswirkungen reaktiver Signale; manche argumentieren, dass dies zu Verwirrung führen kann, weil Änderungen andere Änderungen beeinflussen.
  • Einige Nutzer äußern Bedenken zum neuen Feature „Runes“ und meinen, es sehe stärker wie allgemeiner Code aus als zuvor und könne daher Verwirrung stiften.
  • Es gibt ein Gefühl des Unbehagens gegenüber der Veränderung; einige Nutzer befürchten, dass Svelte zu komplex wird und seine Einfachheit verliert.
  • Ein Kommentierender schlägt vor, Svelte könne die traditionelle Syntax beibehalten und sie im Hintergrund so transformieren, dass sie ähnlich wie die neuen Features funktioniert.
  • Es gibt eine Diskussion über Sveltes besondere Stärke, nämlich mit einem benutzerdefinierten Compiler wie eine Sprache zu funktionieren; manche sorgen sich, dass es dadurch eher einem traditionellen JavaScript-Framework ähnelt.
  • Einige Nutzer zeigen sich enttäuscht darüber, dass andere Bibliotheken dieselben reaktiven Konzepte unabhängig voneinander neu erfinden, was die Kompatibilität verschlechtert und künftige Framework-Wechsel erschwert.
  • Einige Kommentierende freuen sich über die Abschaffung von $:, weil das TypeScript-Nutzern helfen und syntaktische Verwirrung vermeiden soll.
  • Es wird gefragt, wie Svelte mit langen Arrays umgeht und wie nur die jeweiligen View-Elemente gezielt neu berechnet/aktualisiert werden können.
  • Ein Nutzer teilt einen Link für Vergleiche zwischen Svelte 4, Svelte 5 und anderen Frameworks.
  • Einige Nutzer kritisieren, dass Svelte seine Haltung zu „reaktiv standardmäßig“ ändere, und sehen darin einen Vertrauensverlust sowie ein Symptom der Tendenz im Node.js-Ökosystem, Dinge ständig neu zu erfinden und wiederzuentdecken.
  • Der letzte Kommentar legt nahe, dass sich Svelte stärker an React Hooks annähert, diese aber mithilfe eines Compile-Schritts optimiert.
 
wooseop 2023-09-21

Wenn ich nur kurz draufblicke, wirkt es so, als hätte sich die Ausrichtung im Vergleich zu bisher verändert, und es fühlt sich auch sofort etwas fremd an. Ich frage mich, ob das wirklich nötig ist, und es wirkt auch weniger prägnant. Wie bei den Reaktionen auf Hacker News gibt es da einige Punkte, die mir etwas Sorgen machen.