JavaScriptエンジニアはES2015(ES6)にいつ移行するべきか?

2016/12/15

Nilson Jacques

FREE
49

Articles in this issue reproduced from SitePoint
Copyright © 2016, All rights reserved. SitePoint Pty Ltd. www.sitepoint.com. Translation copyright © 2016, KADOKAWA ASCII Research Laboratories, Inc. Japanese syndication rights arranged with SitePoint Pty Ltd, Collingwood, Victoria,Australia through Tuttle-Mori Agency, Inc., Tokyo

JavaScriptの新バージョン「ECMAScript 2015(ES6)」が2015年6月に標準化されてから1年半。まだ普及には少し時間がかかりそうですが、エンジニアはいつES2015に移行するべきでしょうか。

JavaScriptのバージョンES2015(以降、ES6)のコードを最後に書いたのはいつですか? 最近の開発者向けの調査「The State of 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とか?)に対応するためにトランスパイルしているでしょう。

Uncle Sam saying 'We want you to write ES6 JavaScript'

個人的な意見では、シンタックスの変更だけをとってもES6に変更する価値があります。首を横に振る人もいるかもしれませんが、アロー関数オブジェクトやメソッドの省略表記デフォルト引数テンプレート文字列はコードを簡潔にするのに役立ちます。「これらはただの糖衣構文だ」と言うかもしれません。関数のデフォルト引数を例に挙げると、ES5のコードにたった1行追加するだけですが、コードをより簡潔な信頼のあるものにしてくれます。定型的なコード以外のロジックに集中できます。

最後に

言うまでもなく、すべての人が言語のアップデートを恐れているわけではありません。おそらくもっとも議論を呼ぶ問題は、クラス構文の導入です。JavaScriptのプロトタイプ機能を目立たなくさせ、トラディショナルなオブジェクト指向言語のように変える機能です。批判している人たちは、この機能がJavaScriptのプロトタイプ継承がいかに役立つかを目立たなくしていると論じています。しかし、ある人たちはファクトリ関数のような慣用的なテクニックでクラスを使うことを避けるという意味では賛成しています。個人的には、どちらでも、ES6を使ってほかのメリットを受けるべきだと思います。クラスについては好きなように使ってよいのではないでしょうか。

※この記事はSitePointの最新のJavaScriptニュースレターを編集したものです。

(原文:Editorial: Are You Writing ES6 JavaScript Yet?

[翻訳:萩原伸悟/編集:Livit

Copyright © 2016, Nilson Jacques All Rights Reserved.

Nilson Jacques

Nilson Jacques

フルスタックのWebディベロッパーで10年間コンピューターとWebに携わっています。以前はハードウェアの技術者とネットワークの管理者でしたが、現在は、建設業界のWebやアプリケーションを開発する会社の共同創業者兼開発者です。また、SitePointフォーラムのメンターとしても活動しています。

Loading...