BT

新しい あなたは、アーリーアダプター?それともイノベーター?そんな皆様に、InfoQの新機能をご案内しています。詳細はこちら

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

| 作者: David Iffland フォローする 3 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2015年2月1日. 推定読書時間: 4 分 |

原文(投稿日: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氏である。 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT