WebTips


Top / JavaScript

JavaScript

 ブラウザ内で使われるスクリプト言語。方言があったり、無限ポップアップスクリプトのようなページがあったので敬遠されてきましたが、Google Maps等によって再発見され、最近ではWEBサービスのベースとなって来ています。
 ブラウザに最初から入っていますから、最も身近な言語と言う事も出来ますね。

JavaScriptって?

 止まった時間を解除する魔法:JavaScript*1

JavaとJavaScript

 よく間違えがちですが、JavaJavaScriptはまったく別物です。JavaはSun Microsystems社が開発したプログラミング言語で、柔軟性がある事でとても人気が出てきています。JavaScriptはNetscape社*2が開発したHTML埋込み型のスクリプト言語です。最初はLiveScriptと命名されていましたが、Javaに似た書き方なので、当時流行って来たJavaの言葉を使う事をSun社に了解を得てJavaScriptという名前にしたようです。なんて紛らわしいんだ!|

DHTML

 ダイナミックHTML。通常、HTMLは紙のように止まったままですが、そのHTMLが動く、と言う事がDHTMLです。そのDHTMLの原動力の一つがJavaScriptです。
 PHPやCGI等でも時間や日付によって動的に表示を変える事は出来ますが、一旦配信されたHTMLは変わりません。PHPやCGIはサーバサイドスクリプト等とも呼ばれます。配信前にサーバ側でしか変える事が出来ないのです。クライアントに配信されてから、ブラウザー上で表示を変えるのがDHTMLです。
 最近ではJavaScriptに関係する用語ではAJAXがメジャーになって来ていますが、DHTMLと言う言葉はあまり聞かなくなってきましたね。

方言イヤ!

 JavaScriptはNetscape社で開発され、ネスケ*3に搭載されましたが、Windows 95以降、標準で搭載されたブラウザー、Internet Explorer(IE)に急激にシェアを奪われるようになりました。MicrosoftではJavaScriptに、Microsoft社が自社技術を追加して拡張してIEに搭載しました。IEに搭載されているスクリプトは厳密にはJavaScriptではなく、JScriptと言います。
 1990年代後半にはブラウザのシェア争奪戦が勃発し、こんな事が出来る、と言う事について各社で競争して開発した為、独自性が出て来てしまいました。独自性と言ったら聞こえは良いですが、要は方言です。JScriptもJavaScriptをベースに作っているのである程度はJavaScriptの仕様にそって動くのですが、比較的新しく導入されたメソッドでは挙動が違ったり、エラーで動かなかったりしてしまいます。Microsoftは他のブラウザを使うのが悪いと言う事で、そんな事知ったこっちゃ無いとどんどん新しい機能をつけていくようになってたわけです。Windows のIE 5以上でないとうまく表示出来ないページ、というようなものがあちこちに出てくるようになりました。
 こんな事態にはユーザーも開発者も嫌気がさしていました。特に開発者はJavaScriptでは方言がキツすぎるので、全てのブラウザには対応出来ないだろうから、できるだけJavaScriptを入れないようにページを作っていこう、と言うような雰囲気が2004年頃まで続きました。2004年頃、大きなブレークスルーが起こったのです。

Google登場

 シンプルで高速な検索が出来るWEB検索エンジンが登場しました。Googleです。Google以前にも検索エンジンはたくさんありましたが、なかなか思ったページが引っかからない、ゴミが多すぎる、遅い、検索ページがごちゃごちゃしていてウザイ、と言うような事でWEB検索は苦痛を伴い、けっこうな時間を要していました。Googleはそれらの問題を一気に解決し、爆発的にシェアを伸ばしたのです。2000年頃ですね。科学論文などで使われている被引用数*4に似た被リンク数をもとにランク付した検索結果を表示する、という手法なので、ゴミ情報が排除出来るわけです*5
 Googleが流行ってもべつにJavaScriptとはあまり関係がなかったのですが、2004年にリリースしたGoogle EarthGoogle Mapsが大きな衝撃を与えました。Google検索もGoogle EarthJavaScriptにはあまり関係無いのですが(笑、Google Earthの衛星写真を使った地球表示は開発者、技術者に大きな刺激となりました。共通技術をWebで使っているGoogle Mapsも注目を浴びました。Google Mapsを動かしているのがJavaScriptだった事も驚愕でした。既に終わったと勝手に判断していた枯れた技術*6を使って実現していたのです。

JavaScriptの再発見

 JavaScriptは1995年に登場し、不遇の時代を送っていましたが、Google Mapsやその他のサービスによって再発見、再認識されました。大きなターニングポイントとなったのです。とても方言が強かったJavaScriptとJScriptですが、2000年にはIEがほぼ独占状態となり、翌2001年にIE 6がリリースされてからは開発は落ち着き、次のIE7までは5年を要しました。この仕様がある程度固まっていた期間が長かったため、ここにJavaScriptとJScriptの違いがある、こうすれば同じような動きをする事が出来る、と言うような、何が方言かをよく理解し、それを解決する方法が開発されたのが大きいです。両方の方言を理解する事はとても面倒な事ですが、面倒さを克服してもあまりあるだけのメリットがあったわけです。
 HTMLが止まっている静的なものだけでしたら、紙の配布と変わりません。スクリプトを埋込む事によって、WEBブラウザだけで動くアプリケーションを配布したりサービスしたりする事ができるわけです。

AJAXという言葉

 JavaScriptが再発見された最大の要因として、AJAX(アジャックス)という言葉があります。AJAX*7JavaScript経由で非同期でXML通信してページを書き換える、というものです。詳しくはAJAXを見てもらうとして、要は、ページを変えなくても内容をどんどん変えられると言う事ができるようになりました。通常のHTMLでは、リンクをクリックしたとき、必ず一瞬ページが真っ白になり、徐々に表示され、その間待たなくてはならなかったです。まぁ慣れてしまっているので普通の事ですが、サーバの反応が悪かった場合はストレスになりますし、ヘッダーやフッターが同じでも最初から書き直すような無駄もありました。非同期通信を使えばヘッダーやフッターはそのまま、変えたい部分だけを部分的にアクセスし、書き換える事ができるのです。とても合理的で、スマートです。サーバの反応に時間がかかる場合は、サーバの反応を待っています、少しお待ち下さいと言うような表示ができるようになります。
 このような機能についてJesse James Garrett氏がAJAXとい名前を付けました。別にそれそのものは新しい技術ではなく、既存のJavaScriptとXMLを組み合わせて非同期通信をすると言う事に関する命名なのですが、一連の組み合わせに名前がつく事によって爆発的に普及するようになったのです。ブログやフォーラム等でも名前が無ければ普及しませんよね。いちいちJavaScriptと〜なんて書いていられないですから。この命名と、その考え方に多くの技術者が感銘を受け、普及するようになったのです。
 2005年以前と2005年以降ではWEBアプリの作り方が全く違って来ていると言っても過言ではありません。

Contents



*1 HTMLだけだと表示してまったく動かないですが、JavaScriptを使えば動きます
*2 Netscape社はNetscape Navigatorの開発元ですが、インターネット初期のWebブラウザーといえばこれでした。今でこそInternet Explorerが大きなシェアを占めていますが、これはマイクロソフトの戦略の結果。一気にシェアを奪われてしまいました。最近ではNetscape Navigatorの流れを汲むFirefoxがシェアを伸ばして来ていますが。
*3 Netscape Navigator
*4 発表された論文の中でどれだけの人に引用されたか、と言う事で論文の重要性が分かる
*5 最近ではGoogleのアルゴリズムを利用して検索結果を上位にさせるSEO:検索エンジン最適化というような技術も出て来ていますが、やりすぎると排除されるのでいたちごっこですね
*6 反論は多そうです、前からあって忘れてた、と言うのは確かだと思いますが
*7 Asynchronous JavaScript + XML

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-09-03 (月) 16:26:25 (1102d)