Ember.jsのバージョン1.9がリリースされた。Handlebars 2.0をサポートし、性能改善がされ、1.10のベータにはHTMLBarsが導入された。
Robert Jackson氏によれば、10月にHandlebars 2.0がリリースされて以降、Emberチームは"最新バージョンのHandlebarsを使えるようにするよう、多くのリクエスト"を受けてきた。.
EmberのコントリビュータであるMatthew Beale氏はEmber.jsのブログでEmber.js 1.9 and 1.10 Beta Releasedというブログ記事でリリースを発表した。そして、その中でHandlebars2.0のテンプレートのサポートが追加されたことを発表している。また、Handlebars 1.xとの後方互換性は維持しないことも示されている。
Beale氏によれば、この変更は、"Emberアプリケーションの公開APIやテンプレートのシンタックスには影響しない"そうだ。
10月に1.9のベータをリリースしたとき、HandlebarsがEmberアプリを壊すかどうかについて疑問が生まれたが、開発者であるYehuda Katz氏はこの懸念を振り払っている。
EmberのパブリックなテンプレーティングAPIには影響ありません。Handlebars 2.0はHandlebarsのAPIを大規模に再構成されています。よりモジュール化しやすくしています。
[Handlebars 2.0は]バグ修正もし、Emberをさらに改善しています(名前空間を使ったコンポーネントが使えます)。
HandlebarsはEmberの唯一の依存物のため、Emberを使っている開発者はテンプレートを互換性があるように変更する必要はない。
Ember 1.9のリリースとともに1.10のベータも発表された。そしてこのベータでHTMLBarsが導入された。HTMLBarsはHandlebars上で構築された新しいテンプレーティングライブラリで、Ember.jsのコアチームのメンバであるErik Bryn氏が作者だ。
氏はEmberconfでHTMLBars The Next-Generation of Templating in Ember.js"と題したプレゼンを行い、HTMLBarsについて"Emberの根本的な性能問題を解決するチャンスだ"と説明した。
氏は"HTMLBarsの何がわくわくさせるのか"という問いに対して"構文"と答えている。
Bryn elaborates:
理想的な書き方はこれ。
<div class="{{foo}}">{{bar}}</div>しかし、今のEmberでは次のように書かなければならない。
<div {{bind-attr class="foo"}}>{{bar}}</div>HTMLBarsでは、次のような理想的な書き方ができる。
HTMLBarsは括弧がどこで使われているか、オープンタグの中で使われているか、属性定義の中か、タグの中か、検知します。
<div class="{{foo}}">{{bar}}</div><div {{foo}}></div>
<div class="{{bar}} baz"></div>
<div>{{baz}}</div>
"スクリプトタグは必要ない"ということです。
HTMLBarsの発表に合わせてBeale氏は次のように言う。"この新しいレンダリングパイプラインはEmberにとって重要なマイルストンです。APIの互換性を完全に維持することによって、安定に対するコミットメントを示しています。"
また、Ember.js 1.9はストリーム、レンダリングパイプラインの一番低いレベルでの置換バインディングも追加されている
さらにBeale氏が言うには、"ストリームを追加し、それをビューレイヤを通じて使うことで、レンダリングの性能を改善し、ヘルパをシンプルにして、HTMLBars向けのコードベースの準備になります。"
Ember.jsはMITライセンス。InfoQの読者はGitHubのプロジェクトを通じてEmber.jsに貢献できる。