JavaScript
これからオブジェクト指向プログラミングを勉強してみたいと思っている人に推薦するプログラミング言語としては、どの言語がいいだろうか。
まず、普及しているオブジェクト指向プログラミング言語を考えてみることにする。注目を浴びている言語としてはC#がある。Webアプリケーション構築ではJavaとPHPがよく使われている。デスクトップアプリケーションではVisual Basicといった言語がある。基本的には Windowsでしか動作しないが、そもそもデスクトップ用OSの普及率を考えると、Windows上で動作すれば十分だという話である。エンジニアに人気が高いCをオブジェクト指向へ拡張をしたC++もなかなか人気が高い。スクリプト言語ながら人気があるのはRubyである。Webブラウザ上でプログラムを動作させるために一番よく使われているのはJavaScriptになる。Flashなどのアニメーション系ではActiveScriptといった言語もあるが、これはJavaScriptの独自拡張だと考えてもいい。
こうしてみると、オブジェクト指向言語といっても数多くの言語があることに気がつく。この中から選択をするわけだが、どの言語も一長一短であり、どのような立場でオブジェクト指向言語を学びたいかによって選択肢は変わってくる。
ところで、プログラミングの楽しさは、コンピュータを自分の思ったとおりに動かせることにあるわけだが、そのレベルに達するようになるまでに知らなければならない事柄は非常に多い。段階を追って色々な技術を身につけていくしかないのであるが、そのためのロードマップを考えたとき、一つの言語だけで学ぶのでは足りないことに気がつく。もちろん、基本とする言語は一つであった方がよいのだが、実際に何かのアプリケーションを実現しようとすると、機能ごとにその実現を得意とする言語をいくつか組み合わせる必要がある。すると、結局のところ複数のプログラム言語を扱わざるを得ないのである。
このことから、プログラミング言語教育においては、初学者が興味を惹くような題材を簡単に扱える言語により、プログラミングの基礎である構造化プログラミングについて理解をさせた後で、本格的にオブジェクト指向について教授するという2段階の方式がよいと考えられる。このとき、あまりに文法が異なると初学者にとっては学習に要する負担が高くなってしまうため、組み合わせについては考慮が必要であろう。
では、次に誰でも興味を持つ題材とは何かということを考えると、これがなかなか見つからない。やはり立場によって興味を持つ内容が変わってきてしまうのである。趣味でプログラミングを学びたいと思っている人にとっては、ゲームというのはモチベーションを維持できるだろう。一方、仕事でプログラミングを学びたいと思っている人にとっては、ゲーム会社で働こうと思っていなければ、あまり興味が持てないだろう。こういう人にとっては直接収入や職場での高い評価に結びつくプログラム能力を身につけたいはずである。こう考えてみると、ビジネス用アプリケーション、Webアプリケーションに結びつくような内容が良いのではないだろうか。学校などで題材とするのに適しているプログラムは何だろうか。学校では原理を知ることに主眼をおくことが大切なので、あまり現場で役に立つテクニックは必要ではないの分、内容は少なくて良いのだが、学習者の目的が一番曖昧な場合が多い。そうすると、できるだけ身近なものがいいだろう。今や携帯電話に搭載されている電卓の仕組みであるとか、自動販売機のコインカウントの仕組みとかが考えられる。もしくは、自分の成績を記録するプログラムであったり、住所録を管理するプログラムであったり、こづかい管理プログラムであったり、色々あるだろう。こういったことを考えると、なかなか誰もが興味を持つ題材というのはないことがわかる。結局、講義をするときに、対象者についてよく考えながら題材をきめることになる。
最後に、組み合わせる言語のパターンについて考えてみよう。色々考えられるはずであるが、文法の類似性、開発環境構築の容易さ、実行環境構築の容易さ、適用分野での普及率、参考資料入手の容易さ、言語仕様の標準化の度合い、といった観点から評価して選択するべきだろう。C + Java とか、BASIC + Visual BASIC とか、JavaScript + Java とか、JavaScript + Visual BASIC とか、JavaScript + Ruby とか、いくつかあるが、個人的には普及率、文法の類似性といった観点から、JavaScript + Java という選択はかなり良い線をいくのではないだろうかと考えている。特にJavaScriptはインターネット接続ができれば、いたるところで使われている生のプログラムソースコードを参照できるというのは魅力的である。ページを開かせて、このプログラムを解析してみましょう、といったアプローチも簡単にできてしまうのである。そういう意味では、JavaScriptは究極のオープンソースだともいえる。