BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 開発が勢いづく6to5 JavaScriptトランスパイラ

開発が勢いづく6to5 JavaScriptトランスパイラ

原文(投稿日:2015/01/14)へのリンク

ECMAScript 6はその目的を達成しつつあるが,ブラウザの実装レベルがあまりにも多様であるため,開発者は目標を絞ることができていない。そのために最近では,JavaScriptトランスパイラの6to5に注目が集まっている。その開発チームが先頃,競合するesnextの開発陣がプロジェクトに参加することを発表した。

2014年9月のSebastian McKenzie氏による最初のコミット以降,6to5は,実行環境の互換性問題に悩まされずにES6構文でコードを記述したいと願う開発者にとって,格好のツールになった。ある互換性チャートによれば,6to5はES6の機能を最も数多く実装したソフトウェアである。

6to5を使用すると,次のES6コードは,

class User extends Model {
  constructor() {
    super();
    this.sayHello();
  }

  sayHello() {
    alert("Hello World!");
  }
}

このように有効なES5コードにコンパイルされる。

var User = function User() {
  Model.call(this);
  this.sayHello();
};

_inherits(User, Model);

User.prototype.sayHello = function () {
  alert("Hello World!");
};

Brian Donovan氏の開発したesnextのコミュニティはもっと小さく,ember.jsの開発関係者が大部分を占めている。開発に参加する理由をInfoQが尋ねたところ,ember.jsのメンバであるStefan Penner氏は次のように答えてくれた。

esnextと6to5の両方が継続すれば,非常によく似たソリューションが重複して存在することになります。これら2つのコミュニティは,解決しようとする問題も同じであることから,同じような努力を必要とする上に,ユーザの選択もさらに難しくなります。

Penner氏はES6のトランスパイルに関して,さらに“仕様準拠性の洗練と改良,処理時間の改善,ドキュメントの充実,理想的にはデファクトソリューションとなることに注力する”必要がある,と述べている。

Mckenzie氏によれば,esnextのコードを6to5のコードベースに取り入れる予定はないが,プロジェクトには貴重な才能が加わることになる。

6to5のコードベースは変わりません。esnextからは何も継承しません。リーダのBrian Donovanは,6to5のコア開発に参加します。Stefan Pennerは開発プロセスに関与する他,Emberのインテグレーションなどにも参加する予定です。

6to5はGoogleのTraceurに大きな影響を受けているが,採用しているアプローチは異なる。6to5ではターゲットとする環境の互換性の違いに応じて,開発者が個々の変換を無効にすることができる。polyfillが必要な機能はいくつかあるが,ランタイムは必要ではない。

6to5を使用している開発者たちは,そのセットアップガイドや生成するコードの品質を称賛している。Node.jsやgrunt,gulpといった数多くのビルドシステムにも統合されている

Durandalは,Aureliaと呼ばれる次世代バージョンから6to5の利用を開始する予定だ。Durandalを開発したRob Eisenberg氏は,数多くのオプションを検討したが,コンパイル結果,ランタイムが不要であること,ES6仕様への準拠性から,自身にとって6to5が適切な選択だった,と述べている。

6to5の開発チームのレスポンスはとても迅速でした。彼らは頻繁に,時には一日に何回もリリースしています。本当に一生懸命なのです。プロジェクトに対して大きな熱意を持っているのが,こちらにも伝わってきます。[Aureliaは]単純なES6プロジェクトではありませんが,現在は6to5で順調に開発を進めています。SystemJSやRequireJSのような,さまざまなモジュールローダで使用するための,複数のモジュールフォーマットへのコンパイルなどでも問題ありません。

プロジェクトの名前からは,ES6をES5にトランスパイルするだけのように思われるが,最終的には名前も変更して,“JavaScript/ECMAScriptの今後の全バージョン”をサポートしたい,とMckenzie氏は言う。

6to5という名前のせいで,ES6が広くサポートされるまでの,短期間のソリューションであるという印象を持たれています。すべてのブラウザと環境がES6をサポートするまで,まだかなりの時間が掛かるでしょうから,必ずしもこれは事実ではありません。

訂正: この記事の初期版では,Stefan Penner氏をesnextの開発者として紹介していた。正しくは,Penner氏はember-cliの開発者である。ember-cliはesnextを使用していて,現在はember.jsコアチームの一部となっている。esnextを開発したのは,Brian Donovan氏である。 

この記事に星をつける

おすすめ度
スタイル

BT