Stencilの目的と目標

Stencilは、人気の高いフロントエンドフレームワークのコンセプトを、ランタイムツールではなくコンパイルツールに統合することを目指しています。Stencilのゴールは「フレームワーク」になることではありません。Stencilのゴールは、Web標準を使用しながら、フレームワークに期待されるような、優れた開発体験とツールを提供することです。多くの場合、Stencilは従来のフロントエンドフレームワークの代替として使用することができます。しかし、必ずそのように使用する必要はありません。

Web標準

最終的にStencilは、Webコンポーネントを生成します。そのため、あらゆる主要なフレームワーク、または、フレームワークなしでも動作します。さらに、Stencilは、ES ModulesとDynamic Importによって、従来のバンドラーや、不必要なランタイムの読み込みを置き換えています。Web標準を使用することで、開発者は、変化し続けるカスタムフレームワークのAPIではなく、世界中でドキュメント化されているWeb標準のAPIを学び、採用することができます。

自動最適化

コンポーネントや、Webサイトのパフォーマンスを向上させるために、開発者がしなければならない最適化や、微調整は数え切れないほどあります。コンパイラを使用すると、Stencilはコンポーネントコードを分析し、最適化されたコンポーネントを生成することができます。

フィーチャー-フレンドリー

ソフトウェア開発の世界が進化し続ける中、コンパイラも進化し続けています。コンパイラは、コンポーネントの完全な書き換えの代わりに、標準のコンポーネント・モデルを共通の入力として使用して、最適化を継続的に行うことができます。コンパイラを使用することで、開発者は、将来的に使いやすいコンポーネントを、作成することができます。また、何度もやり直すことなく最新の最適化を行うことができます。さらに、APIに何か変更があった場合、コンパイラは自動的に調整を行い、更新する必要があるものを正確に開発者に通知することができます。

ランタイムパフォーマンス

Stencilは、実行時の処理に、ダウンロードして解析する必要がある、クライアントサイドのJavaScriptを書く代わりに、ブラウザ内に直接構築されたAPIを使用することを好みます。これらのAPIは、カスタム要素を含みます。

小さなAPI

Stencilは、学習して再学習する必要のある、大規模なカスタムAPIを意図的に省いています。繰り返しになりますが、私たちの目標は、別のフレームワークを作るのではなく、ブラウザ内で既に実装されているAPIを使って、開発者が将来的に使いやすいコンポーネントを生成するためのツールを提供することです。APIが小さければ小さいほど、学習が容易であり、また壊れる可能性も低くなります。

Framework Features During Development

まだお気づきでない方もいるかもしれませんが、私たちは、Web標準は素晴らしいものであり、多くのメリットを提供してくれるものだと考えています。また、構造を持たずにWeb標準を使うことは、多くのユースケースで適切、かつ可能であると考えられます。しかし、アプリやチームの規模が大きくなると、すぐに管理が難しくなることがわかりました。開発者がフレームワークに惹かれるのは、その優れたツール、定義された構造、そして、開発者が迅速にアプリを構築できる機能のためです。Stencilの最大の目標の一つは、開発中に素晴らしいフレームワークの機能と、一流のツールを持ちながらも、フレームワークに特化したカスタムコードを、生成するのではなく、将来性のあるWeb標準のコードを生成することです。

幅広いブラウザサポート

最新のブラウザ機能と、APIをサポートしていない少数のブラウザのために、Stencilは自動的にPolyfillします。これが意味するのは、すでにネイティブに機能をサポートしているブラウザでは、不要なJavaScriptをダウンロードして、解析する必要がないということです。素晴らしいことに、今日のWebの状況では、ほとんどの最新のAPIは、すでにStencilが必要としているものをリリースしています。すぐにStencilを使えるブラウザのサポートは、IE11以降が含まれています。

BackNext
Contributors