お前らCOBOLが嫌いならCOBOLの悪い点を真似るなよ

InfoQより。

ドメイン特化言語は英語のように書くべきではない

そう言えばRoRのActiveXXは英語っぽい書き方をするなーと思ってたんだけど、DSL一般のことなのかね?

この「英語っぽい文法(っぽいもの)」のダメダメな例がCOBOLでしょ。COBOLという言語が良いかどうかは別にして、多くの人がCOBOLという言語を嫌う理由の代表的なものの一つが、

無駄に中途半端に英語っぽい

ということだってことは知らないのかね。

COBOLって言語は、かなり英語っぽく書ける。

MOVE もげ TO あれ.

なんて、英語の命令文そのものだし、もっと複雑な例はいっぱいある。さらに、COBOLには「付属語」という「書いても書かないでもいい語」ってのがあって、それは何のためにあるかと言えば、「記述を英語らしくする」ためだ。日本人にとってそんなのはどーでもいーから、たいてい書かないけど。

さらに、命令が英語っぽいものだから、論理的な一貫性に欠ける。典型的な例が、たいていの言語にある「右辺左辺」という考え方で、COBOLには固定したそういったものがない。そんな一貫性よりも「英語としての一貫性」の方が重視されている。比較的最近のものでも、「その言語仕様だと英語としておかしい」というクレームがついたり、「英語の文法としては正しいがドイツ語としては」というクレームがついたりする。

で、そんなことやってて嬉しいかと言えば、

私はまるっきり嬉しくない

し、日本人の多くは嬉しくないだろう。それよりはプログラム言語としての論理が一貫している方がずっと嬉しい。なので、コーディング規約でそういった面倒臭くなるものは全部禁止にしてしまう。

COBOLの最初の志しは悪くなかったんだと思う。だけど、それは結局失敗している。いや、英語圏の人にとっては成功なのかも知れないけど、COBOLという言語が英語圏以外でも使われるということを忘れてしまっているという時点で、失敗だ。だから、この仕様について言えば、

COBOLの悪い点

だと断言しちゃう。

ところがそのCOBOLを嫌悪する人達が、こういった「COBOLの失敗」をまるっきり再現してしまうところが滑稽極まりない。散々COBOLを貶してる連中が「COBOLの一番悪い点」を真似して、それも失敗しそうだという点が、

反省という言葉を知らない馬鹿

に見えてしまう(「失敗しそう」は言い過ぎだけど)。反省しなかったら猿よりダメじゃん。

同じように、嫌悪されつつ、失敗の烙印が押されてしまったものを、それを嫌悪したり貶したりしている人達が同じことをしてしまうものはたくさんある。私の身近にあるものだけでも、「セットトップボックス」やら「キャプテン」やらある。まぁ失敗してしまうのもいい経験だという話もあるけど、

賢者は歴史に学ぶが、愚者は経験しか学ばない

の愚者パターンそのものじゃん。

PS.

他のエントリを見たらわかるけど、私は「COBOLの中の人」でもあります。

お前らCOBOLが嫌いならCOBOLの悪い点を真似るなよ” への2件のコメント

  1. > さらに、命令が英語っぽいものだから、論理的な一貫性に書ける。

    s/書ける/欠ける/
    変換ミスだと気付かないと逆の意味にとってしまうので。

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