ES6 or ES2015 ? 〜WEB+DB PRESS Vol.87 ES6特集に寄せて〜

こんにちは!kintone開発チームの佐藤鉄平(@teppeis)です。

本日6/24発売のWEB+DB PRESS Vol.87にて、ECMAScript 6をテーマに第1特集を書かせていただきました。

WEB+DB PRESS Vol.87 ES6特集

ECMAScriptとはJavaScriptが準拠している言語仕様で、その最新版であるECMAScript 6 (ES6) が今月17日にEcma標準として公開されました。

本特集では、ES6の主要機能や変更点には一通り触れつつ、それぞれの機能が追加された背景やどう活用できるのかといったこともできるかぎり解説しています。

  • 第1章 ECMAScript 6とは何か: JavaScriptの新たな仕様を知る
  • 第2章 ECMAScript 6に触れてみよう: トランスパイラ/ポリフィルで今すぐ使う
  • 第3章 モダンになった文法: 生産性を高めるための言語の進化
  • 第4章 強化された標準ライブラリ: 新しいクラスの追加と既存クラスの拡張
  • 第5章 簡潔で柔軟な非同期処理: PromiseとGeneratorによるフロー制御
  • 第6章 標準化されたモジュール管理システム: ブラウザにもサーバにも対応するシンプルなしくみ

ES6はこれからのWeb開発に大きな影響があるテーマです。ぜひご覧いただければと思います。

ES6とES2015、どっち?

さてES6の名称ですが、ものによってECMAScript 2015、ES2015と表記されることもあり、少し混乱があります。

従来の仕様書(PDF)では『Standard ECMA-262 5th Edition, ECMAScript Language Specification』というタイトルだったため、通称ECMAScript 5、ES5とされてきました。今回の仕様書を見ると『Standard ECMA-262 6th Edition, ECMAScript 2015 Language Specification』というタイトルになっていて、「2015」が追加されています。

ES6の仕様書に「2015」という文字が名称に追加されたのは比較的最近で、今年1月のDraft Rev31からです。ES Discussでの議論やTwitterでのTC39メンバーの発言を見ると、やはりES2015が正式名称であり、来年以降のECMAScriptの策定やリリースのスタイルに名称を合わせるというのが理由のようです。

ECMAScriptを策定しているTC39は、策定に膨大な時間がかかってしまったES6の反省を活かし、今後は機能単位で策定を行い、その年にまとまった機能をES2016, ES2017と年次ベースで標準化してリリースすることを計画しています(詳しくはazu氏の『明日には使えなくなるES7トーク』を参照)。今回の名称変更はこれに合わせたものです。

一方で、これまで数年間に渡って使われてきたES6という名称はエンジニアコミュニティの中ではすでに浸透しています。WebStorm IDEが、ES6とES2015のどちらの表記にするかTwitterで意見募集したところ、多くの人はES6と答えています。

また、②alityでお馴染みのDr. Axel Rauschmayerも、ES2015を正式名称と認めながらも書籍のタイトルは『Exploring ES6』としました。

Even though the official name is now ECMAScript 2015, I’ll keep calling it ECMAScript 6 – for now – because that’s how everybody knows this version.

本特集でもどちらの名称で表記するか悩んだのですが、多くのWeb上のリソースがES6のままであることなどを考慮して、私もDr. Axelと同じく本特集ではES6と呼ぶことに決めました。次バージョン以降はES2016などと呼んでいくことになると思います。(正直なところ、名称変更は策定プロセスと合わせて来年ES2016からにすれば良かったのでは、と思います。。)

もちろんこれは現時点での私の考えなので、正しいというわけではありません。ご参考まで。

ところで、今回の名称変更は、Ecma標準とISO標準の名称と合わせるという目的もあるのでは?と一部で言われていたのですが、ISOではES2015を『ISO/IEC 16262:2016』として標準化する予定らしく、残念ながら年次がずれてしまいましたとさ。