プログラム言語に「わくわく」なんていらんでしょ

ひがさんのblogより。

Rubyにワクワク感以上に求めるもの

Matzの寝言へのつっこみだから、多分信者があれこれ書くんだろうなぁ。あ、でもひがさんのblogはJavaの信者多いから、それ程でもないか。

今回は「私が知っているMatz」ベースではなくて、「みんなの知っているMatz」ベースの話。

ひがさんが後半で「わくわく感」についてつっこんでいる。

ワクワク感は、これまであったことのないものに触れたときに、感じることが多いと思いますが、仕事で使うときに、これまで出会ったことのないものが、いつもたくさんある状態は困るわけです。

私も同じことを考える。Rubyな人達はよく「わくわくする」とか言うけど、それは勘違いの気のせいだよ。そうでなかったら、それはまだその言語が実用として身についてないからだよ。

「わくわく」ってのは、未知のものに触れる時の感じるもの。これから入る世界への期待が「わくわく」なのだ。だから、言語が身についてしまったら、言語自体で「わくわく」なんてある方がおかしい。だって、それは言語そのものに未知の期待に満ちているということだから。「期待」はその言語が運んで来てくれるもので十分だし、実用しようという言語が「未知」ではちょっと困る。

未知の言語でも、「わくわく」しないものはある。私の経験だとCOBOLなんてちっとも「わくわく」しなかった。Pascalは最初は「わくわく」したけど、あっと言う間に「わくわく」しなくなった。最初に覚えたPL/IやFORTRAN, COBOLの後に覚えたLispやCは、「わくわく」した。PrologやSmalltalkも「わくわく」した。

それらの「わくわく」は言語自体の「わくわく」もあったけど、それよりもその言語が運んで来てくれる諸々に対する「わくわく」が多かった。PL/IやFORTRANは「アセンブラ以外の言語でプログラムが書ける」という期待で「わくわく」していたし、LispやProlog, Smalltalkは「今まで自分の知らない世界の扉を開く」という期待で「わくわく」した。Cは「これでハッカーへの道の第一歩」と思った。当時のハッカー世界の共通言語がCだったからね。

もちろん学んでいるうちにいろいろ「わくわく」することはある。私はJIS COBOLの委員をやっているけど、ISO 2002 COBOLが出来てから委員になった。それで「先端のCOBOL」をキャッチアップするために言語仕様を勉強したけど、これは間違いなく私を「わくわく」させた。あれだけ退屈な言語だと思っていたCOBOLに、まだこんな楽しいことが残っていることに驚いた。

逆にRubyは「わくわく」しない言語だった。だからこそRubyな人達が「わくわく」と言うのに違和感を感じるんだけど。じゃあなぜ「わくわく」しないかと言えば、

出来て当たり前のことが当たり前に出来て、
たいていのことがサクっと当たり前に出来る

からだ。つまり、学ぶ前からわかってしまっている部分が多いから、「わくわく」する余地がない。それじゃあつまんないって言うかも知れないけど、それって「実用言語」としては素晴しく良いことだと思う。学習する前から機能が納得出来るんだから。つまり、「わくわく」しないことは美徳なのだ。

Rubyで「わくわく」するのはMatzだけでいい

のだ。実装側ではやるべきことはいっぱいあるし、言語仕様変えなくたって「わくわく」出来る要素はいっぱいあるんだから。

繰り返しになるけど、「わくわく」するってのは、未知への期待からだ。つまり、身についていないものがあるから、「わくわく」するのだ。だから、むしろ言語それ自体は早くつまらなく退屈になってしまった方がいい。言語の未知の部分が十分少なくなってこそ、その言語が身についたと言えるからだ。

確かにRubyという言語は進化し続けているから、「未知」はどんどん供給されて行くだろう。だけどそれは実用から遠避けているとも言える。

実はISO COBOLもつい先日までは、とても「わくわく」する言語だった。「2008規格」目指して山盛り仕様追加されていた。でも「2008規格」という話は流れ、もっと先に標準化されることになった、それと共に「そんな先進の機能は現場では使われていない」ということが認識された。その結果「もっと落ちついて完成度の高い言語を目指すべき」という方向になった。それがCOBOLという「実用言語」の進み方だという認識になったんだと思う。

「実験言語」には「わくわく」は必須だろう。だけど、「実用言語」には

「わくわく」は有害

だと思うくらいだ。「わくわく」がないからこそ、安心して使えるし、使わせることが出来る。言語なんかで「わくわく」なんてしない方がいい。

プログラム言語に「わくわく」なんていらんでしょ” への1件のコメント

  1. ピンバック: A puzzler on the trail

コメントは受け付けていません。