教えて! 最新技術―テックコミュニティの現場から

第1回 JavaScript/Node.jsのこれまでとこれから

この記事を読むのに必要な時間:およそ 3.5 分

WEB+DB PRESS本誌では久しぶりとなる連載インタビュー企画。新型コロナ禍のさなか対面での取材を避け,リモートで行います。ホストは関満徳が務めます。記念すべき第1回目のゲストとしてお迎えしたのは,Node.js日本ユーザグループ代表理事の古川陽介氏です。

古川氏は,日本トップクラスのJavaScriptエンジニアとして知られ,大学院を卒業後,数社での勤務を経て,社員のマネジメントとWebアプリケーション作成用のユーティリティツールやフレームワークの開発を担当されています。その傍ら,Japan Node.js Association代表理事として,国内外のカンファレンスへの登壇,Node.jsの勉強会やイベント運営など積極的に活動されています。

画像

古川 陽介(FURUKAWA Yosuke)さん

⁠株⁠リクルートテクノロジーズでマネージャーとしてアプリ基盤の改善や運用,開発支援ツールの開発から,エンジニアチームの支援や育成までを担う。趣味はゲームとプログラミング。

GitHub:yosuke-furukawa
Twitter:@yosuke_furukawa
URL:https://yosuke-furukawa.hatenablog.com/

関:Node.jsと出会ったのはいつぐらいなのでしょうか?

古川:私のキャリアのスタートはJavaでした。Node.jsが最初にリリースされたのが2009年で,私が使い始めたのは2010年です。もともとJavaをやっていましたが,今はフロントエンジニアやグループマネジメントをやっており,Node.jsやJavaScriptを仕事で使うことが多いです。入社したときからコミュニティ活動はしていました。今は「JSConf JP」注1という名称ですが,2018年までは「東京Node学園祭」という名称で2代目リーダーをやっていました。2011年はただの参加者でしたけどね。その後,スタッフ活動を経て,2013年に2代目のリーダーを襲名した,という経緯になります。

注1)
JSConf JPは,Japan Node.js Associationが主催するイベント。2019年からJavaScriptの国際的なコミュニティカンファレンスJSConfファミリーの一員として開催。

JavaScriptを襲った暗黒時代

関:Node.jsが2009年にリリースされる前のJavaScriptは,⁠セキュリティ上まずいから,JavaScriptは無効にしてね」という風潮がありました。何がきっかけでJavaScriptが見なおされるようになったのでしょうか?

古川:当時JavaScriptのほかにFlash,ActiveX,Silverlight,DirectXなど,リッチな方法論がいろいろありました。JavaScriptは,非常に残念なことに,ほかに比べてよからぬことに使われていたことが多く,そのために無効にすることを推奨されていたのですが,その期間が長かったのです。JavaScriptは,今のような使われ方ではなく,画面の表示を派手にしたり,マウスカーソル周りを装飾したりなど,どちらかというとお遊び的な使われ方をされることが多く,UX面でも良い影響を与えていませんでした。

JavaScriptが見なおされるようになったのは,2000年代後半から2010年代前半です。ちょうどNode.jsがリリースされたころですね。その少し前からAjaxと呼ばれるキーワードが発生し,一番影響が大きかったのはHTML5です。Flashをはじめとしたリッチなクライアント技術では,ブラウザのプラグインを使った追加インストールが前提でした。かつ,セキュリティ設定の変更やアップデートが面倒だったのに対し,HTML5はそれらが一切不要だったというのが大きいです。JavaScriptの標準化仕様に対する各社の動きも,変わったのはこのころです。当時は標準化仕様をめぐって各社が対立していたのですが,HTML5ブームをきっかけに⁠もっとオープンなやり方でやっていきましょう⁠という転換がありました。その後,Google MapsやGmail,Google DocsなどがリッチなJavaScriptを使ったアプリケーションとして実装されたことで,ここまでできるのか,という驚きと便利さが普及を後押ししました。次にきたのがスマートフォンの台頭です。特に,iPhoneがFlash非対応という宣言を出したことで,JavaScriptへの転換を余儀なくされたことも大きいです。

JavaScript新時代の幕開け

関:HTML5ブームやスマートフォンの台頭で,JavaScriptはどのように変わったのでしょうか?

古川:それまでのフロントエンドの考え方としては,MVCModel-View-ControllerやMVVMModel-View-ViewModelなどの設計思想に代表されるように,サーバサイドでモデルやコントローラ/ビューモデルを作り,JavaScriptはビュー上でちょっと動かしてリッチなものを作るのが主流でした。しかし,HTML5ブーム,iPhoneによるFlashの廃止,クライアントの端末の高性能化により,ビューの部分はJavaScriptでも作れることがわかってきました。ここからクライアント側でビューを作る動きが活発になってきます。

その結果,これまで慣れ親しんできたサーバサイドでHTMLを作るパターンから,ReactやVue.jsのようにクライアントサイドでHTMLを作るパターンが増えてきました。この変化に伴って,クライアントサイドでのコードの記述量が増え,設計方法が複数生まれて多様化していきます。Redux注2などの単方向データフローで状態を管理するライブラリが使われだしたのもこの流れです。言い換えれば,今まではHTML,CSS,JavaScriptを作成したあとにサーバ側でHTMLのテンプレートに変換しなければいけなかったものが,納品したらすぐに使えるようになりました。非常に合理的ですよね。今までの,いわゆるクライアントとサーバに分けて役割分担をして運用する考え方に慣れ親しんだエンジニアからすれば,この動きはわかりにくいかもしれません。なんでテンプレートエンジンが不要なんだろう? とか,HTMLをJavaScriptで表示したら重くなったりしないの?というギャップを感じるかもしれません。

注2)
Redux(リダックス)は,アプリケーションの状態を管理するためのJavaScriptライブラリ。ユーザーインタフェースを構築するために,ReactやAngularなどのライブラリで最もよく使用される。

著者プロフィール

関満徳(せきみつのり)

グロース・アーキテクチャ&チームス㈱でプロダクトオーナー支援スペシャリスト,ディスカバリーコーチとして,エンタープライズ領域の企業にDX化のコンサルティングサービスを提供。

GitHub:fullvirtue
Twitter:@fullvirtue
URL:https://fullvirtue.com/

バックナンバー

教えて! 最新技術―テックコミュニティの現場から

  • 第1回 JavaScript/Node.jsのこれまでとこれから