uhyohyo.net

JavaScript初級者から中級者になろう

言い訳とJavaScriptの歴史

※JavaScript初心者の方にはよく分からない内容が含まれているかもしれません。今は気にせず、講座をひと通り読み終わった後に読み返してみましょう。

この講座について

この講座では、基本的にJavaScriptを「Webページを作るもの」として紹介しています。以前は「Webページに動きを与えるもの」として紹介していました。しかし最近は、ページの根幹にJavaScriptが入り込んでいる、いわゆるWebアプリケーションと呼ばれるようなページが増えました。昔は「JavaScriptは補助的なものなので、たとえJavaScriptがOFFになっていてもまともに見られるページを作らないといけない」と言われたものですが、今はJavaScriptはONになっていて当然という雰囲気です。

さらに、JavaScriptの活躍はブラウザの上だけに留まりません。node.jsの登場以降、JavaScriptが利用される場面はとても多くなりました。筆者も、ブラウザ上で動くJavaScriptよりもnode.jsで動くJavaScriptを書く機会が多くなっています。

そのような状況になっているJavaScriptですが、この講座が作られ始めたのは2010年のことです。当時はHTML5もほとんど普及しておらず、この講座もHTML4で書かれていました。現在(2015年)はECMAScript6が騒がれて実装が進んでいますが、当時はECMAScript5が出たばかりでこちらも(この講座が対象とするような層には)普及は進んでいませんでした。

このような事情から、この講座の前半部分(第一篇)は、(特にDOMの部分は)今からみると古めかしい内容になっています。しかし、現在JavaScriptを使う多くの開発者が、このような内容を基礎にしていると考えています。今の時代、例えばDOMの世話にならなくてもJavaScriptで開発ができる(node.jsを使うからとか、あるいはクライアント側でもAngularJSだのReactだのを使うからとか)ということもあるかと思いますが、そういう人たちに追いつくにはこういった基礎からの理解が大切です。

この講座は、そのような時代に書き始め、その後現在まで書き足してきたという経緯から、後ろに進むにつれ新しい内容になっています(話題ごとに章を分けているので実際の更新順とは前後する可能性があります)。前から読むことをおすすめしています。

JavaScriptの歴史

前節でも触れたように、この講座の成り立ちはJavaScriptの発展と少し関連しています。そこで、JavaScriptの歴史を軽く紹介しましょう。

そもそもJavaScriptが登場したきっかけは、「Webページに動きを与えたい」ということでした。当時はIEとNNという2大ブラウザが競争を繰り広げていた時代で、それぞれ相手にはない機能(独自のHTML要素など)を盛んに開発していました。Web標準なんてどこ吹く風という感じですね。

その一環として、Webページが動く!!! という売り文句で搭載されたのがJavaScriptです。当時はこれをさしてDHTML(Dynamic HTML)と呼びましたが、今となっては死語ですね。このように、JavaScriptの当初の用途はWebページを動かすことであり、その精神は現在まで引き継がれてます。

JavaScriptが普及し始めるとすぐに、互換性がなかった各ブラウザ間の実装に互換性を与えるべく、ECMAScriptやDOMといった標準化が発生しました。これにより現在では互換性の問題に悩まされることは減りましたが、NNが消えた今、残ったIEの独自拡張の問題は今でも尾を引いています。

この講座が登場したのは先にも書いたとおり2010年頃で、このころにはJavaScriptはだいぶ成熟してきました。意外と最近と思うかもしれませんが、IEはバージョン8、Firefoxはバージョン3、Google Chromeはバージョン4という時代です。IE8といえば、現在のDOM標準からかけはなれた実装で有名でした。しかしIE8のシェアは当時なかなかのもので、Web製作者たちは無視できません。

必然的に、当時の「JavaScript入門」といったページにも、IEでしか動かないコードや、IEでも動く代わりに標準ではないコードが紹介され、それを見た未来あるJavaScript初級者たちがクソみたいなコードを量産する事態になっていました。

その状況を良くないと思った筆者はこの講座を立ち上げることにしました。当初トップページに掲載されていた文です。

JavaScript。「ジャヴァスクリプト」と読みます。主にWebページを動きを与えるのに使われるほか、現在ではさまざまなところで活躍しているプログラミング言語です。

現在では多くのWebページに使われていますが、とてもレベルが低く不適切なものも多数あります。もっと質の高いJavaScriptを使える人が増えるといいなという思いから、この講座を作りました。

よく「上級」といいながら低レベルなサンプルを紹介するサイトがありますが、中級講座であるこのサイトを読めば大体のものを自力で創れるようになると思います。ぜひ自分で作りたいものを作れるようになりましょう。

とてもレベルが低く不適切なものというのは、前述のような入門サイトで紹介されていた標準でないノウハウや、それを見て書かれたコードを指しています。

それから5年が経ち、IEもバージョンアップに伴いある程度ましなブラウザになったこともあり(それでもバージョンアップせずに古いIEを使うユーザーが問題になっていますが)、JavaScript標準という概念が受け入れられるようになったと感じています。それでも、一度作られたレベルの低い入門サイトは、数年でインターネット上から消えるものではありません。そういったサイトを蹴落とし、入門者・初級者向けのJavaScript講座としての地位を高めることを目標にしています。

また、JavaScriptも前述のように日々進化して新しい技術が登場しています。そのような技術を紹介する記事というのは、どうしても既にある程度既存のJavaScript技術を理解している人向けになります。これから新しくJavaScriptを始める人が、そういった新しい部分まである程度体系的に知ることができるというのも売りにしたいと考えています。