ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
コーディングの向こう側

スクリプトは本当に使いやすいのか?

Perl, VBA, JavaScript... スクリプト言語にはいろいろな種類があります。これらに共通する特徴は、なんと言っても「手軽さ」でしょう。経験の浅いプログラマでもちょっとしたソフトならすぐに作れるようになるという「とっつきやすさ」もあります。しかし、だからといってすぐに「スクリプトは使いやすい」ということになるんでしょうか?

スクリプト言語の最大の弱点は、「寛大さ」にあると思います。たとえば変数や関数の型チェックが非常に甘くなっています。C言語ならちょっと型の違う値同士を比較しただけで大変なことになりますが、ほとんどのスクリプト言語では厳密な型のチェックがありません。これは初心者にとってはうれしいことでしょう。多少いい加減な書き方をしても動作するプログラムができてしまうのですから・・・。しかし、そういうプログラムは、一見動作しているように見えても誤りを含んでいる可能性が高いのです。敷居が低けりゃいいってものでもないのです。

「寛大な」言語を使って誤りのないソフトを作りたければ、自分に厳しくならざるを得ません。自分が書いたプログラムで間違った型の使い方をしていないかどうかを、自分でチェックしなければならないわけです。ちょっと考えただけでも相当気が滅入る作業だってことは想像がつくでしょう?そんなことを我ら人類がやる必要があるでしょうか?ないですね、キッパリと、ない。それはコンパイラの仕事ですからね。

スクリプト言語を使うということは、その寛大さのために潜在的な誤りを生産し続けるということです。誤りは潜在していて、長い間表面化しないのですが、あるとき突然「発病」します。これはソフトウェアの規模がある程度大きくなってくると起こる現象です。複数の潜在的な誤りが絡み合って奇妙な現象を起こすのです。一般にこういう「複合問題」は原因の特定が非常に難しいので、かなり困ります。とくに変数のスコープを片っ端からグローバルにしてしまうという悪い癖のあるプログラマは、だいたいこの問題に突き当たります。

スクリプト言語はとっつきやすいが間違いやすい、だから規模の大きなものは作れない。つまりこういうことです:

  • (誤)スクリプト言語を使うと簡単にソフトが作れる。
  • (正)スクリプト言語を使うと簡単ソフトが作れる。

だけど、
自分専用のちょっとしたツールが欲しいときは
スクリプト言語って最高!!


目次へ
バグ退治はいつやるべきか

(「コーディングの向こう側」は2000年4月から2001年5月にかけて作成されたコンテンツです。)