Spice Picks

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は「フロントエンドエンジニア」にはウケないと思うが、「マークアップエンジニア」「コーダー」にはウケると思う。


Spice-Z

東京でフロントエンドエンジニアをやっているすぱいすのブログです。