人気急上昇中のフロントエンドフレームワーク「Svelte」ですが、そのSvelteでアプリケーションを構築するためのフレームワーク「SvelteKit」もまた、GitHubでスター数が1万を超えるなど急速に注目度が高まっています。そのSvelteKitの普及活動を国内エンジニアに向けて地道に展開中のエキスパート 山下裕一朗さんに、SvelteKitの魅力と課題について聞いてみました。
今回話を伺ったエキスパート
フォローしよう!
--SvelteKit とはどんなものでしょうか? 概要を教えてください。
SvelteKit (スベルトキット) は、あらゆるサイズのWebアプリケーションを構築するためのフレームワークです。Next.jsのSvelteというとわかりやすいかもしれません。現時点の最新バージョンは9月10日に「Svelte Summit」で発表された「SvelteKit 1.0 RC」です。
SvelteKitの主な特徴は、以下の3点です。
- ファイルシステムベースのルーター
- プログレッシブエンハンスメント(次の質問のAで詳細に説明)
- 妥協のない初期ロード体験を提供(次の質問のCで詳細に説明)
--SvelteKitがGitHubスター数1万を達成した件について、簡単な所感をお願いします。
うれしいです。まだ正式版(v1.0)が出ていない状況にもかかわらずスター数1万を達成できたのは、SvelteKitの思想に共感している開発者が多いことの現れだと思います。
--GitHubスター数1万に至るほどの人気を獲得している理由はどんなところにあるとお考えでしょうか?
SvelteKitが、昨今のSPAから(進化版)MPAという流行の先端を走っている点が大きいと思います。SPAはネイティブアプリのようなリッチな体験を提供できるとして2013年以降流行しましたが、以下の問題がありました。
A: JavaScriptがなければ動作しない (これは思っているよりも頻繁に発生します)
B: 大量のJavaScriptはバグの可能性を高める
C: すべてのJavaScriptをロードしたのちJavaScriptでHTMLを描画するため、ファーストビューまでに時間がかかる
SvelteKit は以下の手段でこれらを解決します。
A: JavaScriptがない環境でも使用できるよう、たとえばネイティブformを柔軟に使用できる機能を提供 (まだマージされていませんがPRがあります)
B: SvelteKitは、そのページに必要なJavaScriptのみをロード(SPA のようにすべてのJavaScriptをロードしません)
C: SvelteKitは、(可能であれば事前に作成した) HTMLをロードすることでファーストビューを最速にします。また2ページ目以降はクライアント側でルーティングすることで高速なページビューを提供(ここでサーバ側でのルーティングとの性能の違いを確認できます)
このように、SvelteKitがWebアプリケーションのトレンドを捉えていることが人気を獲得している理由だと考えています。
--SvelteKitについての現状の課題があれば教えてください。
先日、SvelteKitの主要な機能であるルーティングに破壊的な変更が入りました(PR)。このほかにも破壊的変更を実施しています。これ自体はβ版のうちに多くの開発者からの声を元に、より良いAPIを設計するためなので良いことです。
しかし一方で、これにより、Googleで検索してヒットする情報の一部は古くなってしまいました。1.0版に到達するまでは今後も破壊的変更が発生する可能性があり、この点は SvelteKit導入に対するハードルだと思います(ただしかなり近い将来1.0に到達します)。
また、これはSvelteでもいえることですが、とくに日本語の情報が少ないことは大きな課題のひとつです。業務で導入する場合、ライブラリ導入は少なくとも短中期的には不可逆な意思決定になるため、事例がない技術を導入することを躊躇する企業は多いと思います。OSSは利用者が増えることでフィードバックが増え、より改善が進むので、少なくとも日本においてはいかにして利用者を増やすかが課題だと感じています。
--SvelteKit についての今後の(明るい)展望を教えてください。
まず、開発体制について。Svelte / SvelteKitの開発者であるRich Harris は、Vercelの従業員としてフルタイムでSvelte / SvelteKitの開発をしています。また、最近もう1名、フルタイムのSvelte / SvelteKitの開発者がVercelに入社しました。フルタイムの開発者が増えたことで、今後、Svelte / SvelteKitの開発はますます加速します。
次に開発者のRichについて。RichはSvelteで優れたセマンティクスを発明したように、 SvelteKitでも優れたセマンティクスを発明しています。たとえばこのディスカッションを見るとRichがいかに思慮深く、かつ開発者との対話を経て優れたセマンティクスを検討しているかがわかります。
Richの発言の随所から感じられる「Web標準の技術を使用するべきである」や「ひとつのことを実現する手段は常にひとつであるべきである」のような思想は、これまでも、これからもSvelte / SvelteKitが開発者にとって使いやすいものであり続ける理由です。
SvelteKit は、現時点でのその先進性もさることながら、中長期の視点で見た場合、これらの2つの理由から今後も高速かつ素晴らしい進化をし続けると考えています。