9 ポイント 投稿者 GN⁺ 2023-09-21 | 4件のコメント | WhatsAppで共有
  • Svelte 5 が Runes という機能を導入し、JavaScript のリアクティビティを向上
  • 2019 年の Svelte 3 は JavaScript を Reactive な言語へと変えた
    • コンパイラを使って宣言的コンポーネントを最適化された JavaScript に変換
  • Runes はこの Reactivity をあらゆる場所に適用
    • let count = $state(0); のように関数の形で適用
    • Compile-time Reactivity から Runtime Reactivity へ
  • Runes によってリアクティビティが .svelte ファイルの境界を越えて拡張され、コンポーネント間でロジックをカプセル化して再利用するプロセスを単純化
  • Svelte の新しいバージョンは、かつて Knockout が利用していた Signals ベースで動作。直接的に採用するのではなく内部実装として取り入れているため、実装はやや異なる
  • $derived$effect runes を導入し、これらが評価される際に式の依存関係を決定して、ランタイムリアクティビティを向上
  • Runes は複数の既存概念を不要にし、Svelte フレームワークをシンプルにして、アプリをより簡単に構築・保守できるようにする見込み
  • 大半のユーザーにとって置き換え可能なプロダクトを目指しており、新機能は選択的に使えるようにして既存コンポーネントが継続して動作することを保証
  • まだ Svelte 5 の公開日は決まっておらず、現在も作業が進行中

4件のコメント

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

qwikから多くの影響を受けているようですね

 
GN⁺ 2023-09-21
Hacker News の意見
  • この記事は、Svelte 5 のリリース、特に新機能「Runes」について論じている。
  • 一部のコメント投稿者は、Svelte の新機能を Vue や Solid の state および派生/計算変数と比較している。
  • リアクティブシグナルの効果について議論があり、これが他の変更に影響する変更による混乱を招く可能性があると主張する人もいる。
  • 一部のユーザーは新しい「Runes」機能に懸念を示しており、以前より一般的なコードのように見え、混乱を招く可能性があると主張している。
  • 変更に対する不快感があり、Svelte が複雑になりすぎてシンプルさを失うのではないかと懸念するユーザーもいる。
  • あるコメント投稿者は、Svelte が従来の構文を維持しつつ、バックグラウンドでこれを変換して新機能と同様に動作させることができるのではないかと提案している。
  • Svelte 独自の強みである、言語のように振る舞うカスタムコンパイラについての議論があり、一部ではこれが従来の JavaScript フレームワークに似てきていることを懸念している。
  • 一部のユーザーは、他のライブラリが同じリアクティブの概念をそれぞれ独自に再発明しており、その結果互換性が低下し、将来的にフレームワークを変更しにくくなることに失望を示している。
  • 数人のコメント投稿者は $: の削除を歓迎しており、これが TypeScript ユーザーを助け、構文上の混乱を避けるのに役立つと述べている。
  • Svelte が長い配列をどのように扱い、細粒度の再計算/更新だけで該当するビュー要素に反映できるのかという質問がある。
  • あるユーザーは、Svelte 4、Svelte 5、および他のフレームワークとの比較用リンクを共有している。
  • 一部のユーザーは、Svelte が「デフォルトでリアクティブ」という立場を変えたことを批判しており、これは信頼の喪失であり、Node.js エコシステムにおける再発明と再発見の傾向の表れだと主張している。
  • 最後のコメントでは、Svelte が React Hooks に近づいている一方で、コンパイル段階を使ってそれらを最適化していると示唆している。
 
wooseop 2023-09-21

ちらっと見た感じ、従来とは方向性も違って見えるし、かなり異質な印象があります。そこまでする必要があるのかとも思いますし、簡潔さも薄れている気がして、Hacker News の反応と同じく少し懸念を感じる部分です。