2時半に寝て7時に起きた。なんか意味なく夜更かししたもののよく眠れた。

svelte 調査

年末から svelte のチュートリアル を始めたものの、葬儀と年末年始休暇で間があいてしまった。年始やもくもく会でも少しずつやっていたものの、今日で終わらせようと最後の方は少し端折りつつチュートリアルを終わらせた。svelete と sveltekit の2つのチュートリアルをやっていて時間がかかった。svelte のシングルファイルコンポーネント (SFC) は vue.js とよく似ている。スクリプトやテンプレートの構文が違う程度の印象。vue.js よりもスクリプトやテンプレートの記述がシンプルな分、やはり簡単に思える。svelte の作者である rich harris 氏が書いたメモに次がある。

大雑把にまとめると次のようなことが書いてある。

svelte を ui フレームワークとして開発してきて、svelte 3 で svelte は言語だと気づいた。リアクティブな ui を記述するための言語であると。これまでそういった取り組みをしてきたプロジェクトはいくつかあるが、どれもコンパイラ以上の専用ツールが必要になってしまい、すべてを制御する必要があって、ライブラリの段階的な採用などもできないために大掛かりには導入されなかった。

html, css, js という多くの開発者が蓄積された経験をもっていて、小規模に段階的に導入するには、それらの言語をハックして拡張するのがパフォーマンスもよく、もっとも優れた解決策であると考えるに至った。

実際に svelte のチュートリアルをやってみると、その簡潔さから rich harris 氏の言葉も理解できる。開発者によっては svelte コンパイラが拡張している javascript の構文や機能を受け入れられない人もいるだろう。純粋な javascript を書きたい人には向かないライブラリかもしれない。そこがリアクティブな ui をコンパイラレベルで実現するためのトレードオフと言える。だから svelte は javascript のハックも含めての言語なのだという解釈になる。