よもやま

昔、MATLABという、「その業界では有名だけど、一歩外にでると知名度0」という環境のソフトを作っていたことがありまして、これが今で言うところの動的型言語だったわけです。


型がないっていっても、PCは文字列"123"と数値123は別なので、

a="123"
b=123
c=a+b

こういうことを書いてしまって「文字と数字の足し算とか何いってんの?」とPCに怒られるのが当たり前でした。


そしたらなんとなく「数字と文字とか見てわかるように変数名を工夫しよう」とかいうことをはじめるわけです。ハンガリアン記法みたいなもんですね。数値はnHogehoge、文字はstrHogehoge、線はlineHogehoge、ブロックはblkHogeHogeとか。これで確かに問題は減ったんですが、一人でコーディングしてるわけじゃなく、みんながみんな「微妙に違う工夫」を始めてしまい、そのベクトルをまとめる努力もされなかったため、まぁ、なんだかなぁ、なソースになってました。


それから組み込みCの仕事に移ったわけですが、ここでもハンガリアン的なものが続いてて、このころは「変数名はなんだってことを示す必要がある」そして「変数名が長いと嫌がられる」「そもそもコンパイラがアホなことやったら警告してくれる」の合わせ技で「ハンガリアンとかやめよう」というような。けど、お客様のコーディング規約にあわせるのが当たり前で(お客様もそのお客様-自動車メーカーと相談しながらコーディング規約をきめてるわけで)、ままならねーと思いながら日々を過ごしておりました。


それから月日は経ってWin/Mac/iOSでプログラミングしているわけですが、今はもうハンガリアン的な事は一切やってないですね。IDEがちゃんと見ててくれるし、これなんだっけ、ってポイントしたらポップアップで型名を教えてくれるので、変数名にそういうものを含める必要がない。


余計なことを考えずに作ることに集中できる。IDEと静的型付け言語の組み合わせから離れたいとは思わないですね。