Javascriptが世界を支配する日

JavaScript。
javascript-console.png
2005年ごろまでそれは、
「ホームページ」にアラートボックスを表示してうざがられたり、
マウスポインタの形を変えてユーザビリティを下げたり、
そういう存在でした。

インタラクティブなサイトといえばJavaアプレットかFlashでした。
Yahooオークションの残り時間表示、Yahooゲームのチャット機能などはJavaアプレットでした。
おしゃれなサイトはたいていFlashでした。

「JS冬の時代」「失われた10年」ということが言われました。

Ajaxの登場とDOMの標準化

Ajaxの登場でこれが変わりました。
Gmail, GoogleMapsの登場は衝撃的でした。
WebエンジニアたちはこぞってJavaScriptを勉強し、書き始めました。

またDOM標準が整備されることによって、画面を動的に変更するのにJavaScriptが使われるようになりました。

ホリエモンがlivedoor PICSについて「AJAXバリバリです」と宣伝したのがこのころでした。(当時はprototoype.js)

jQueryの登場

jQueryの登場はこの流れを加速しました。
マークアップエンジニアたちもjQueryのコードを書き始めました。
これは革命的なことでした。

今日、JavaScriptが使われていないWebサービスはほとんど存在しません。
プロのWebエンジニアでJavaScriptを書けない、書いたことがないという人は皆無でしょう。

HTMLを手で書く代わりに、jQueryでDOMを構築することが多くなってきました。
.append($('<div>'))
こんなコードをしょっちゅう書くようになりました。
HTMLには<body>タグ1個書くだけ、そんなケースも増えてきたのではないでしょうか。
例えばGmailのHTMLソースでは、<body>タグ内に<script>タグしかありません

この傾向はどんどん加速するでしょう。

iPhoneの登場

iPhoneの登場によって、Flash/ActionScriptの地位が相対的に低下しました。
iPadの登場はこれにとどめを刺しました。

いままで「ホームページ」をFlashで飾っていた企業も、FlashをやめてJavaScriptに置き換えるようになりました。
JavaScriptの直接的な競合がいなくなってしまいました。

さらに、HTML5/JavaScriptでスマートフォンアプリを書くケースが増えているという話もあります。
スマホアプリ開発はHTML5/jQuery Mobileとネイティブどっちがいいの?

GUANDAMの時代

さて2012年はGUANDAMの時代と言われます。
NとM(Node.js、MongoDB)、この2つに共通するものはなんでしょうか。

そう、JavaScriptです。
Node.js
Node.jsの登場によって、JavaScriptはPerl/PHP/Ruby/Pythonの領域(の一角)を侵食しつつあります。
MongoDB
MongoDBの登場によって、JavaScriptはSQLの領域(の一角)を侵食しつつあります。

MongoDBはきてます。
【増員73名】MongoDB女子部 startupイベント

他にもこんなところでJavaScriptが
Google DocumentsのマクロはJavaScriptで書きます。
Google Apps ScriptでGoogleドキュメントのスプレッドシートを操作する

Windows8は、HTML5とJavaScriptでネイティブアプリを書けるそうです。
Windows 8では、HTML5とJavaScriptでWindowsアプリを開発可能に - Publickey

するとどういうことが起こるのでしょうか?

自然言語で起きたのと同じことがWebの世界でも起こる

自然言語で英語が台頭したのと同じようなことがWebの世界でも起こるでしょう。
JavaScriptが共通言語になるでしょう。

すでに「Webデータ」の世界ではJSONが共通言語になりました。
XML-RPCの話題はめっきり聞かなくなりました。SOAPって何でしたっけ。
共通フォーマットが1つあるというのは大変便利です。

プログラミング言語でも、共通の言語が1つあると便利でしょう。
アルゴリズムの解説に説明に仮想言語を使うより、JavaScriptで示した方がわかりやすいかもしれません。
例えばクロージャの解説をするなら、JavaScriptで例を示せば十分です。
[JavaScript] 猿でもわかるクロージャ超入門 まとめ - DQNEO起業日記

同じことがCLI(バッチ処理)の分野でも起こるのではないでしょうか。
MongoDBではバッチ処理をJavaScriptで書きます。

MongoDBでらくらくバッチ処理をやる(JavaScriptファイルを実行する)方法 - DQNEO起業日記
MongoDB : サルでもわかるMapReduce - DQNEO起業日記
やってみるとわかりますが、なかなか快適です。

MongoDBのバッチができるなら、Linuxのバッチ処理だってJavaScriptでできそうです。
(ちなみにWindowsではWindows98の時代からWSH/Jscriptという仕組みがあり、JavaScriptでバッチ処理やCLIアプリを作成することができました。もちろんいまでも。)

思えば、この流れはどこから始まったのでしょうか。

それは間違いなく、GoogleがXHRをウェブで使うようになってからでしょう。
XHRはどこから来たのでしょう。
それは、IE5から来ました。
それは、Outlook Web AccessのためのActiveXオブジェクトでした。

脱線したので話を元に戻します。

LinuxのバッチをJavaScriptで書けるようになったら、Bash/Perl/Python/Rubyを駆使する必要がなくなるかもしれません。
そうなると全部JavaScriptで済んでしまいます。

クラウドの登場によってアプリ開発者の仕事が増えました。
小さい会社であれば、サーバ管理者を雇わずにアプリ開発者がサーバ管理を兼務してるケースがあると思います。
スマートフォンの登場によってアプリ開発者の仕事はさらに増えました。

一方、技術がどんなに進化しても人間の脳は進化しません。
そうすると、複数言語を学習する余裕がなくなります。
言語を3つも4つも使いこなせるエンジニアというのは世の中には多くありません。
それは、自然言語を3つも4つも使いこなせる人が多くないのと同じ理由です。
普通の人にとっては学習コストが高いのです。

JavaScriptさえ書ければ何でもできる時代が、もうすぐそこまで来ているかもしれません。
JavaScriptを書こう。




カテゴリ:

人気記事