JavaScriptの学習効率

Ajaxの登場と共に、JavaScriptに注目が集まっている。それに伴い、JavaScriptを学ぶ人が増えていると思う。私自身もその一人である。JavaScriptを学ぶ中で感じたのは、JavaScriptを効率良く習得するには、他のプログラミング言語での経験が重要だということである。

何故、他の言語での経験が重要かというと、JavaScriptは、それ単独で学習するには効率が悪いからである。主な理由は次の3点である。

  1. 主要な実行環境がブラウザである。そのため、プログラムの実行毎にブラウザのリロードやマウスクリックが必要となり、煩雑である。また、デバッグ環境も貧弱である。
  2. 標準ライブラリが貧弱である。そのため、一般的な機能を自作したり、公開されているライブラリを利用する必要がある。
  3. まともな書籍が少ない。著名なのは「JavaScript」ぐらいだろうか。

もちろん、JavaScript自体は様々な意味で強力な言語環境であるし、上記の問題点も解決されつつはある。しかし、JavaScriptのみの学習では、習熟に時間がかかる印象を受けた。

私がJavaScriptを学ぶ上で役に立ったのは、RubyC++での経験である。特にRubyでの経験が、非常に役に立った。Rubyは実行環境・標準ライブラリ・書籍も豊富であり、学習効率に問題はない。RubyJavaScriptは共通点が多く、Rubyで学んだ概念やテクニックの多くは、JavaScriptでも適用可能であった。RubyJavaScriptの共通点としては、次のようなものがある。

  1. 純粋オブジェクト指向スクリプト言語である。変数やクラスは全てオブジェクトである。
  2. 動的な言語である。実行時に、基本クラスにメソッドを追加可能である。
  3. 言語仕様に無名関数オブジェクトが存在する。

RubyJavaScriptの親和性が高いことを示す良い実例の1つがprototype.jsだと思う。prototype.jsは、RubyフレームワークであるRuby on Railsのライブラリとして開発されている。そのため、prototype.jsは、Rubyの影響を受けている。prototype.jsの成功は、Rubyでの経験をJavaScriptに持ち込むことの有効性を示していると思う。

以上をまとめる。JavaScriptは学習効率の低い言語環境である。そのため、プログラミング技術を、他の言語で習得した方が効率が良いことがある。個人的には特にRubyで習得した技術がJavaSriptとの相性が良かった。
なお、私が経験のある言語は、C, C++, C#, Java, Perl, Rubyなので、他にもJavaScriptとの相性が良く、学習効率の良い言語が存在する可能性はある。