SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Mozilla ViewSource Conferenceレポート

ECMAScript 2015はなぜ策定まで時間がかかったか? 仕様策定のリーダー、アレン・ワーフスブラック氏に聞く

Mozilla ViewSource Conference特別インタビュー

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Mozilla主催のフロントエンド開発者のためのカンファレンス「ViewSource Conference」が、北米・オレゴン州ポートランドにて11月2~4日に開催された。ここで、ECMAScriptの仕様策定のリーダーを務めたアレン・ワーフスブラック氏は「ECMAScript 2015:なぜそんなに時間がかかったのか」というタイトルでセッションを行った。氏によると、2015年6月にリリースされたECMAScript 2015は、1999年のECMAScript 3リリース以来、初めての包括的な再定義となるという。なぜ時間がかかったのか、その思うところについてインタビューを行った。

  • X ポスト
  • このエントリーをはてなブックマークに追加
  • 聞き手:近藤佑子(編集部)、矢倉眞隆氏
  • 協力:清水智公氏(Mozilla Japan)、浅井智也氏(同)
アレン・ワーフスブラック(Allen Wirfs-Brock)氏
アレン・ワーフスブラック(Allen Wirfs-Brock)氏

ECMAScriptの前提知識

  • ECMAScript:JavaScriptの標準を定めたもの
  • Ecma InternationalのTC39によって仕様が決められている
    • TC=Technical Committee(専門委員会)
  • 現在の最新バージョンはECMAScript 2015(旧ECMAScript 6)で、2015年6月リリース
    • 仕様はEcma-262にまとめられている

「JavaScriptは21世紀で最も重要な言語」という想いから、仕様策定に関わった

――アレンさんのバックグラウンドを教えて下さい。

 7年間、ECMAScriptのプロジェクトエディター(仕様書に載せる文章を書く役割)をしていました。ECMAScript 2015が今年6月に策定されましたが、これはECMAScript 3がリリースした1999年から通算して、初めての包括的な再定義と言えます。

 私のバックグラウンドは、プログラミング言語の中でも動的プログラミング言語、特にSmalltalkの開発に長年関わってきました。特に1994年は、Smalltalkを元にしたAIシステムの紹介のために来日もしています。

1985年に日経エレクトロニクスに掲載された、アレン・ワーフスブラック氏のSmalltalkに関する論文を見せてもらった

1985年に日経エレクトロニクスに掲載された、アレン・ワーフスブラック氏のSmalltalkに関する論文を見せてもらった

――なぜアレンさんはECMAScriptの仕様に関わるようになったのでしょうか。

 ECMAScriptに関わるようになったのは、私がマイクロソフトに勤めていた頃でした。当時は動的言語のテクニカルエキスパートをしていました。10年ほど前のこと、私のボスから「JavaScriptを知っているか?」とメールが来て「いや、知らない」と答えたところから、私とJavaScriptとの関わりが始まりました。

 調べていくなかで、JavaScriptがブラウザの中でどういう風に動いているか分かり「これはすごい言語だ、JavaScriptは21世紀で最も重要な言語に違いない」と思ったので、標準化に参加するようになりました。

――Smalltalkや他の言語と比べて、JavaScriptの標準化のプロセスはどんな違いがありますか?

 JavaScriptは、標準化の仕組みがかなりユニークです。CやLisp、その他のプログラミング言語はラバースタンプ(権威のある人がハンコを押す=実装が先にあってそれを元に仕様が決められる)と言われていますが、JavaScriptは技術的なエキスパートが集まるコミュニティによって、言語の設計をしながら実装にたどり着きます。

 また仕様の中身も、JavaScriptが全てのブラウザ、処理系で同じように動作しないといけないので、重箱の隅をつつくようなところまで仕様が決められている、というところも特徴的なところです。

――なぜ、JavaScriptの標準化のプロセスは、そのようにユニークに行えたのでしょうか?

 お互いに尊敬しあうカルチャーが作られたことが理由です。しかしそれに至るまで非常に長いディスカッションの歴史がありました。

ECMAScript 2015は新しい基礎

――アレンさんはなぜ今回、「ECMAScript 2015: Why It Took So Long」というタイトルでセッションを行うことにしたのでしょうか。

 1999年から初めての再定義と言いましたが、ECMAScript 2015の実際の策定の作業は5年ほどでした。しかしその5年間、技術的な作業がかなり行われました。

 プログラミング言語は色々な要素を組み上げる積み木のようなもので、全ての機能が相互作用しつつうまく動かないといけないため、その調整のための時間がすごくかかりました。しかもこれまでJavaScriptを使ってきたプロダクトを、全く同じように動かし続けなければいけない、という制約もあります。新しい機能を追加する際、既存の機能と組み合わせてうまく動くかどうかを確認しなければならないのがとても大変でした。

 しかし、そのような大きな仕事ができたため、今回のECMAScript 2015の策定は新しい基礎ができたと言えます。今後15年、20年JavaScriptを続けていくにあたり、しばらくは大掛かりなアップデートをしなくてすむだろうと自負しています。

 今後2~3年の言語仕様は、1年ごとにECMAScript 2016、2017……という形で、前のバージョンにあったバグの修正と、ちょっとした機能を入れてリリースしてきます。小さなアップデートですむように、言語の発展をより段階的に行えるようにできたのが、時間がかかったその分良かった点と言えます。

――今回のカンファレンスでの「JavaScript Today」というディスカッションで、ECMAScriptのアップデートのプロセスをオープンにする、と仰っていました。今までは、限られたメンバーだけで話し合って仕様を決めていたのを、GitHubに仕様を移し、プルリクエストで提案を受け付けるモデルにするそうですね。そうなると、カジュアルに要望が集まるので、言語仕様の策定がスムーズにいかないのではという懸念を抱きました。

 TC39がECMAScriptの仕様を決めるプロセスは、オープンでありながらもバランスが取れていなければなりません。そのために、ステージとチャンピオンというシステムが導入されています。

 寄せられた提案は、5段階のステージ(0.Strawman、1.Proposal、2.Draft、3.Candidate、4.Finished)に沿って、段階的に仕様として追加されていきます(詳しいプロセスはこちらから)。それぞれの提案に対し、「私はこの提案を支持する」というTC39のメンバーが"チャンピオン"として、責任をもって最後まで進めます。要望を仕様にするためには、そのチャンピオンが付かないといけません。

 このようなプロセスにすることで、新しい提案も多く受け付けるが、仕様への反映も絞ることができます。こうして、コミュニティとしてのオープンさも保ちつつ、責任を持って言語仕様を定める、そのバランスを取れるのではないか、と考えています。

――ありがとうございました。

アレン・ワーフスブラック氏と矢倉氏(右)

アレン・ワーフスブラック氏と矢倉氏(右)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Mozilla ViewSource Conferenceレポート連載記事一覧

もっと読む

この記事の著者

近藤 佑子(編集部)(コンドウ ユウコ)

株式会社翔泳社 CodeZine編集部 編集長、Developers Summit オーガナイザー。1986年岡山県生まれ。京都大学工学部建築学科、東京大学工学系研究科建築学専攻修士課程修了。フリーランスを経て2014年株式会社翔泳社に入社。ソフトウェア開発者向けWebメディア「CodeZine」の編集・企画・運営に携わる。2018年、副編集長に就任。2017年より、ソフトウェア開発者向けカンファレンス「Developers...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9071 2015/11/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング