2007年4月18日水曜日

プログラミング言語の躁鬱

今日は、ちょっと躁鬱ぎみの友人の話をしようと思います。といっても、人間の友人ではなく、プログラミング言語くんです。

いろんな言語でプログラムを組んでいると、それぞれの言語・実装に個性…というか「性格」みたいなのがあるなあ、と、思うことがあります。

たとえば、lisp なんか、神経質ですね。芸術家肌です。理想主義者であるがゆえに、生きているのがつらそうです。でも、僕のような人間にはたどり着けない精神的な境地にいるのでしょう。思わず守ってあげたくなります。

逆に Perl なんておおざっぱですね。どんな記述法でもうけいれるし、ちょっとやそっとのことで落ちることもありません。タフなんですね。もしくは、人の言うことなんて聞いていないのでしょう。一見わがままにも聞こえますが、このタフさ、付き合っていると非常に心地良いです。

C は質実剛健ですね。どんな命令にも文句はいいません。ただコツコツこなします。無茶な命令にも黙って従います。その結果システムを不安定にすることがあっても、全く責任は感じないようです。逆に、無茶な命令で自分自身が落ちるようなことがあっても誰を恨んだりもしないようです。ドライです。彼は、多分、職務に忠実なのでしょう。

そんな個性豊かなプログラミング言語の中で、僕が「こいつ、アップダウンはげしいなぁ」と思うのが LabVIEW です。

こいつ、調子のいいときはバリバリ調子がいいのです。のりのりです。こんな精神状態の時はちょっと命令しただけで命令以上の成果をバリバリだしてくれます。躁なんですね。きっと。ところが、大量のメモリを扱う必要がでてきたりしてストレスがたまってくるとだんだんと雲行きが怪しくなります。そして、(多くの場合、メモリが尽き果てて)鬱の状態にはいります。

普通、プログラムはメモリが尽き果てるとあきらめてさっくり落ちてしまうんですね。ところがLabVIEWくんは違います。無理なのがわかっている状況でも、果敢に何とかしようとするのです。ゴリアテにいどむダビデのように勇敢です。でも、やっぱ、無理なものは無理なんですね。ダビデだと思っていたらドンキホーテだった罠です。結局、落ちるものは落ちるのです。問題はその落ち方です。彼はまじめです。いつも、最後の最後までなんとかしようとするのです。そして、その結果、かなりの割合で周りのプロセスを道連れにします。「俺、もう、処理できないよ、どうしよう?どうしよう?もうだめだー」と周りに言ってるのです。(勝手な想像ですが。)たまりませんよ、そんなこと耳の横で聞かされ続けた日には。さっきまで調子のよかった周りのプロセスもだんだん鬱になってきます。そして、結局、周りのプロセスを道連れにして、へたをすると、PC 全体を応答不能にして、それから自分が落ちるのです。まあ、善意でとらえるならば、まじめなんですね。最後まで期待に答えようとしてしまうのでしょう。気持ちはわかるけど、できれば、やめて欲しいものです。

そんな LabVIEW くん、先日、めずらしく非常に思い切りのいい落ち方をしました。僕は巨大な3次元データをメモリに読み込むプログラムを書いたのです。そして、そのプログラムを実行したところ、その瞬間!LabVIEW だけが、まわりを道ずれにせずにスパッと落ちたのです。

なんだかすがすがしい気分の午後でした。

Joschi

0 件のコメント: