WIP-Svelteは今の所、フロントエンドエンジニアにはウケないと思うが、マークアップエンジニア・コーダーにはウケると思う。
February 02, 2020
日本語の記事はSvelteを絶賛しているが、そのほとんどがベンチマークのソースについて調べていない。 また、サンプルアプリ(ToDOアプリ)レベルの開発で論じているものしかないので、実際の業務で使えるかどうかの判断材料は足らないと思う。
Svelteは大規模なWebアプリの開発に向いていないと思う
実際に、 「firebaseからデータを持ってきて、ページをまたがって状態管理を行う」前提でSPAアプリを作ろうと、開発を進めてみた。 感想:WebアプリをSvelteで作るのはまだ早い 理由:
- エコシステムがまだない。様々なライブラリの開発が進んでいるが、開発途上で機能が足りなかったり、バグが多い印象。 例えば2020年1月現在routerで最もstarを集めているsvelte-spa-routerでも、urlの遷移がうまく行かなかったり、ライブラリ使用側で選べるオプションが極端に少ないなど。逆に言うと、Svelte用のライブラリ開発に今参入すれば、数年後のビッグライブラリになれるかも知れない。
- Storeの機能が大規模向けではない。customStoreで状態の更新にある程度の制限を設けることはできるが、現状Storeを使用するコンポーネント側がStoreの全体を知る必要がある。一部の値のupdateをしたい時にも知る必要があるし、Storeの一部分だけ知りたいときでも、その使用側でfilterをかけるしか方法がなさそう。大規模SPAに求められる状態管理をするには、かなりの頑張らなきゃいけない気がしている。
という肌感。
よって、「フロントエンドエンジニア」にはウケないと思う
。
WebページだったらSvelteで開発したい
でもただのwebページなら、Svelteで開発したいと思った。 「jQueryは使いたくない。でもReactを使うには大げさすぎる。」といった場面で使用され始めるのは想像ができた。
- outputファイルはバニラJS
- 使われないコードは、CSSも含めてoutputに含まれない
から、単体ページの作成時には
加えてコードが少ないことで、今まで「マークアップエンジニア」「コーダー」(HTML,CSSは書くけどJSは書かないみたいな職)として働いてきた方々の参入障壁がかなり低いと思う。
ただの導入に関しては、Vueのようにオブジェクトをexportする必要はなく、ReactのようにJSXを新たに学ぶ必要もない。
Svelteなら、普通のJSを書くように、script
タグの中で少し関数を書くだけでいい。
Webページを作成する、というシチュエーションにおいては、VueやReactよりハードルは低いはずだ。
ということで、2020年2月現在において、 Svelteは「フロントエンドエンジニア」にはウケないと思うが、「マークアップエンジニア」「コーダー」にはウケると思う。