初心者用の言語としてのJavaScript

またもや間が空き、大幅に時期を逸してしまいましたが、私がJavaScriptを初心者用の言語として選んだわけについて触れて見ます。

型について

前回のエントリで比較した変数・関数定義だけを取ってみても、JavaScriptは(今最も普及しているバージョンでは)かなりユルい言語です。
代入する値の型が何であろうが変数宣言はvarのみですし、戻り値の型、仮引数の型が何であろうが関数宣言はfunctionのみです。
初学者にとってのメリットは、覚えることが少なくて済むという点、デメリットは多言語に移った際に面倒に感じてしまう点でしょうか。

開発・実行環境などについて

また、多くの方が言及されているように、インタプリタ型であるという事や、最初から環境が整っているという事は、とっつきやすいという点で大きなメリットだと思います。

もう一つよく議論のネタに上がるのは、「プロトタイプベースのオブジェクト指向言語」であるということでしょうか。
確かにJava等、実務でよく使われる言語がクラスベースであることが多い今、毛色の違うJavaScriptから学ぶのは少々遠回りな気もします。

しかし、「猫も杓子もオブジェクト」ということが分かってしまえば「プロトタイプを使ったプロパティ探索」は非常に分かり易い仕組みだと思います。
そして、ここでしっかりと「オブジェクト指向でプログラミングをする」ということに慣れておけば、他言語を学ぶ際にも大きな土台となるのではないでしょうか。

この点について自分は、id:hiyamaさんのプログラマのためのJavaScriptを拝見し、実際に動かしてみることで理解しました。
「prototypeワケワカンナイ」な方で、この記事を読まれたことのない方は是非読んでみて下さい。超オススメです><

で、結局どうなの?

結局、JavaScriptは初心者用言語としては最適だと思います。
開発・実行が簡単という点が何よりの強みです。

また、学習が進むと型についての弱点も自前で型チェックを行うことである程度対処出来る部分もありますし、そうすることで理解も深まりますね。
他の弱点についても同様です。
そうして学習するうちに上に挙げたようなデメリットを実感出来たらシメたもの、他の言語に浮気すればよいのです。

因みに、ラ・マン候補には「ECMA Sctipt友達」で、「成果物をそのままWebで公開できる」ということで、AS3.0(Flex)をオススメします。

さらに、JavaScript自体が今ではWeb技術の核を成す言語になっており、(X)HTML、CSSと併せて学習すれば、そのまま業務に利用出来る立派なプログラミング言語だと思います。
学習して損はありません(キッパリ)。

おまけ

自分が「prototypeワケワカンナイ」頃にJavaScript でソートアルゴリズムを可視化に触発されて作った、3種類のソートが進む様子を点で表すJavaScriptです。
Sort Demo

説明を書き加える際に自分で書いたJavaScriptを見渡してみました。
それぞれのソート用の関数はsetIntervalを使った描画を含んでいるため、このままでは全く再利用性がありません。
にもかかわらず態々Array.prototypeにメソッド定義していたり、破壊・非破壊のフラグがあったり、ソート済みのArrayを返していたり…。
一体何がしたかったのでしょうか…。ま、見た目は面白いと思います><