デザインテクノロジーの最前線 - 桐山孝司

m.c.t.ホーム > エクスペリエンスマガジン > デザインテクノロジーの最前線 - 桐山孝司 > スクリプト言語の楽しさ

2006.02.15スクリプト言語の楽しさ

ここ数年、プログラミングの世界ではスクリプト言語が大きな割合を占めるようになった。直接システム開発に関わっていなくても、JavaScript, Perl, PHP, Python, Rubyなどを耳にする機会が増えていると思う。これら汎用言語に加えてFlashのプログラミングに使うActionScript, マイクロソフト社のサーバに使うVBScriptなど特化したものも含めると、書店のプログラミング関係の本の半数ほどがスクリプト言語で占められている状態である。


スクリプト言語の特徴は、第一義的には手順を書くだけでコンパイル(機械語への変換)をせずに実行できることである。ただPythonなどは実行前にシステムが自動的にコンパイルするので、これは厳密な言い方ではない。それよりも、整数や配列などの変数のデータ型をあらかじめ宣言しなくてよいという長所で総括する方が、スクリプト言語の特徴を捉えているだろう。変数宣言がないことは、データ構造を考えながらプログラミングをするのに向いているということであり、デザインの言葉でいえばプロトタイピングに向くツールであるといえる。

プログラミング言語の人気度を継続的に統計に取っているTiobeというサイトがある。各言語に関してGoogle, MSN, Yahooで検索した結果に一定の係数をかけて合計した数で比較しているので、決してその言語が実際のプログラムの生産に使われた度合いを示すわけではない。しかし関連会社、技術者、情報源などの多さがウェブ上に反映された指標としてみることはできる。2006年1月の集計では、上位1位から10位はJava, C, C++, PHP, (Visual) Basic, Perl, C#, Python, Delphi/Kylix, JavaScriptであり、半数がスクリプト言語である。グラフは2001年以降のTiobeの集計結果であるが、これを見るとPHPなどは安定した地位を築いていることがわかる。

人気といえば最近では、主要なスクリプト言語のユーザらが一堂に会して最近の事情を報告しあうLightweight Language Day and Nightというイベントもある。大規模な開発に役立つわけでもないスクリプト言語のイベントに300人も集まることも驚きだが、各言語の信奉者が良いところだけでなくネックになっているところもバラしてしまうようなユーモアもあって、プログラミング関係とは思えない楽しさがある。その中でも元気なのは、まつもとゆきひろ氏が開発したRubyグループだ。日本発のプログラミング言語がほとんどない中で、Rubyは世界的に知られるようになった特別な存在である。

スクリプト言語が普及した主な理由はハードウエアの向上である。ハードの向上とともにメモリも大量に使えるようになり、プログラムを書く上で高レベルのロジックに集中できるようになった。そのメリットを最大限に受けているのが現在主流のオブジェクト指向プログラミングで、多少のメモリの浪費は気にせずにアクセスしやすい形でデータを準備し、使い終わったらシステムが自動的に回収してくれるのに任せるという方法である。

手軽に利用できるようになったスクリプト言語だが、それぞれの言語の進化についていくのはなかなか大変である。特にウェブ関係のようにユーザインタフェースもデータベースへの接続もあると、次から次へと新しいものが出てくるように感じられる。そこを救うのか、あるいは単にまた新しいものが出てきただけなのかも知れないが、最近では言語に習熟しなくても手早くコンテンツを発信できるウェブフレームワークが広がっている。RubyをベースにしたRuby on Railはその先行事例である。Python陣営にもTurboGears, Djangoなど対抗馬が出てきて、ウェブフレームワーク間の競争はしばらく続きそうだ。

スクリプト言語の第一の特徴はコンパイルを明示的に通さないこと、第二の特徴は変数の動的な型付けがされるのでプロトタイピングに向くことと述べたが、第三の、そしておそらく最も重要な特徴は、プログラミングを楽しくするということだろう。以前、徹底したオブジェクト指向と洗練されたオブジェクトブラウザで気持ちの良いプログラミング環境を提供するSmalltalkという言語があった。現在ではSmalltalkは表舞台から姿を消したが、PythonもRubyもSmalltalkからオブジェクト指向とともにプログラミングを楽しくする精神を引き継いでいる。ちょうど良いクラス群や様々なライブラリを使って、考えていることをすっきり手際よく実装できるのは非常に精神的に良く、結果としてさらにユーザが増えてコミュニティーから良いものが提供されるという正のフィードバックがかかってくる。製品デザインではよく使う喜びということが言われるが、プログラミングという地道な世界で起きているスクリプト言語の興隆を見ると、やはりここでも楽しさが重要な牽引力になっているのである。


『Tiobe』:http://www.tiobe.com/
プログラミング言語の人気の推移(2001?2005) d_17_tiobe-trends