2015(ES6)」が2015年6月に標準化されてから1年半。普及には少し時間がかかりそうですが、エンジニアはいつES2015に移行するべきでしょうか。JavaScript」によると74%の回答者がすでにES6を使ったことがあり、また使いたいと考えています。21%の回答者がES6について聞いたことがあり、学ぶことに興味があると答えています。ES6が標準化されてから約1年半が経ちましたが、多くのブログや記事、チュートリアルはいまだに古いES5のシンタックスを使っています。この1週間、私はChromeエクステンションの開発に時間を使ってきました。Chromeエクステンションの開発で良い点は、ブラウザーが固定されていて、どのような機能がサポートされているかが分かっていることです。最近、新しいシンタックスに慣れるために、ES6が動く環境ならどこでもES6を使うようにしています。開発したエクステンションはES6ベースのJavaScriptで書き、とてもうまくいきました。トランスパイルの是非もちろん、ES6がうまく動作するのはChromeだけではありません。サポートするブラウザーは急速に増えています。最新の主要なデスクトップブラウザーは仕様の90%以上に対応しています(主要な機能で残っているのは末尾再帰の最適化だけです)。Node6と7の現在のバージョンも同様のレベルでサポートしています。場合、対応するブラウザーだけに専念しコーディングするような余裕はなく、ES6のサポートに時間がかかっているモバイルブラウザーやIEの古いバージョンもサポートしなければなりません。ありがたいことに、ES5でも動作するコードに変換する技術、トランスパイルのおかげで、レガシーなブラウザーエンジンに対応するために、モダンなJavaScriptを使うことをあきらめる必要はありません。この点は、すぐにES6へ対応することへの反論とされますが、私は納得がいきません。そもそも、実際のアプリケーションの多くでは、すでにいくつかのビルド処理で使われています。SASSやLessのコンパイル、モジュールのバインディング、ファイルの連結などです。重要なことは、トランスパイリングは今後も使われ続けていくことです。大多数のユーザーのブラウザーがES6をサポートしても、十中八九そのときの最新JavaScriptバージョン(ES2020とか?)に対応するためにトランスパイルしているでしょう。個人的な意見では、シンタックスの変更だけをとってもES6に変更する価値があります。首を横に振る人もいるかもしれませんが、アロー関数、オブジェクトやメソッドの省略表記、デフォルト引数、テンプレート文字列はコードを簡潔にするのに役立ちます。「これらはただの糖衣構文だ」と言うかもしれません。関数のデフォルト引数を例に挙げると、ES5のコードにたった1行追加するだけですが、コードをより簡潔な信頼のあるものにしてくれます。定型的なコード以外のロジックに集中できます。最後に言うまでもなく、すべての人が言語のアップデートを恐れているわけではありません。議論を呼ぶ問題は、クラス構文の導入です。JavaScriptのプロトタイプ機能を目立たなくさせ、トラディショナルなオブジェクト指向言語のように変える機能です。批判している人たちは、この機能がJavaScriptのプロトタイプ継承がいかに役立つかを目立たなくしていると論じています。ある人たちはファクトリ関数のような慣用的なテクニックでクラスを使うことを避けるという意味では賛成しています。個人的には、どちらでも、ES6を使ってほかのメリットを受けるべきだと思います。クラスについては好きなように使ってよいのではないでしょうか。※この記事はSitePointの最新のJavaScriptニュースレターを編集したものです。JacquesフルスタックのWebディベロッパーで10年間コンピューターとWebに携わっています。SitePointフォーラムのメンターとしても活動しています。