ReactライクなJavaScriptライブラリInfernoがバージョン1.0になった。モダンなJavaScriptライブラリReactに慣れ親しんでいるけれども、そのサイズに不満を抱いている開発者に解決策を提供するものだ。
Infernoのうたい文句は「モダンなユーザーインターフェイスを構築するための、超高速ReactライクJavaScriptライブラリ」だ。ReactのコンセプトやAPIは好きだけれども、React Nativeといった付加機能すべてを必要としていない人にとって、このライブラリは意味がある。Infernoはブラウザーおよびサーバーと一般的なDOMのためだけに作られている。ネットワーク上の配信サイズは、Reactが45 KBなのと比較して、Infernoは9 KBしかない(いずれもgzipしたサイズ)。おかげでパース時間が大幅に短縮され、それによってモバイル機器におけるパフォーマンスが改善する。
チームは実際のパフォーマンスにフォーカスし、そこに多くの時間を費やしてきた。創始者のDominic Gannaway氏はインタビューで、Infernoのパフォーマンスに対する取り組みについて説明している。
deoptimisations("deopts"、JITコンパイラがコンパイルできないところ)が最小限に抑えられるよう、徹底的にチェックしました。ベンチマーク、プロファイリングツール(IRHydra 2、Chrome Dev Tools)、コードベースの様々な部分にあるスパイクの書き直しによって、Infernoチームは絶えずdeoptsを取り除く方法を見つけました。
次のコードスニペットを見れば、InfernoがいかにReactと似ているかわかるだろう。
class MyInfernoTest extends Component {
componentDidMount() {
setInterval(() => {
this.setState({
time: (new Date()).toLocaleString()
});
}, 200);
}
render() {
return <h2>
Current time: <span>{this.state.time}</span>
</h2>
}
}
リリースを発表する記事で、コアチームのエンジニアであるLuke Sheard氏は、このプロジェクトのGitHubでのスター数は、2016年の150から急増して、年末には約7,300になったと述べた。現時点では8,000を超えている。Inferno固有のコード変更をすることでパフォーマンスが改善されるが、適切な互換性ライブラリを使うことでReactの交換部品として使うこともできる。
今年、チームはフレームワークのエコシステムを拡大したいと考えているが、これまで導いてくれたGannaway氏の助けなしにやっていかなくてはならない。2016年の終わりに、Gannaway氏はFacebookにジョインしてReactに取り組んでいることを発表した。Sheard氏によると、Gannaway氏の役割が小さくなってもInfernoは続いていく、そして、コアエクスペリエンスと様々なライブラリサポートを改善することにフォーカスするという。
2017年、Infernoは引き続き、コア機能の改善、できるだけ素早いバグ修正、コミュニティに対するサポートと指針の提供にフォーカスします。新しいライブラリに対応し、Infernoの適応範囲とモジュラリティを幅広いユースケースへ広げていきます。これまでに様々なモジュールが移植されていますが、コミュニティのさらなる取り組みによって、さらに拡大していくでしょう。
Infernoはより知られているReactの代替ライブラリPreactとともに新参者だ。どちらもReactの代わりに使えるが、それぞれのフォーカスには違いがある。
Rate this Article
- Editor Review
- Chief Editor Action