命名するという行為

http://codic.jp/

プログラミングをする上で一番時間のかかる作業ってなんだと思いますか? アルゴリズムを考えること? タイピングしてプログラムを組むコーディング作業? いえいえ違うのです、変数・関数などの名前を考えるのが一番時間がかかる。

これ冗談じゃなくて結構おおむねほぼ本当の話です。難しいのですよ名前を付けるっていう行為は。ナウシカでは、オーマと名付ける事によって巨神兵は自我に目覚めました。つまり命名とは対象の存在意義を定める行為に等しい。だから対象がなんであるかをとことん考え抜く必要があるのです。この関数はどういった機能を持っているのか、この変数はどのような値を格納するためのものか、このクラスは何を表現しているのか、存在するとはなにか、生きるとは。往々にして思考が哲学的な方向に脱線したりしてとにかく時間がかかる。

それに加え一度決めてしまうと、なかなか別の名前に変えるというのも面倒くさいって側面もあって余計慎重になってしまう。そこで結構な確率で邪魔をするのが言語の壁であります。プログラムって基本的に英語で書くものなんです。まあ別に日本語でもいいっちゃいいのですが、プログラミング言語に元々用意されている関数って「if」であるとか「each」とう風に英語なんで、そこに「tuika」とか「henkan」とかあると違和感ありすぎて泣きそうになる。だから英語でないといけない。しかしながら私は、Englishのネイティブスピーカーではないので、Google翻訳とかで適当に翻訳した単語が果たして適切なのかの判断がつかない事が多い。
例えば、値の変更を監視するという関数名をつけたくてGoogle翻訳で「監視」と入力すると「surveillance」という単語が出てきます。おっとー、なんだか見覚えのない単語が出てきましたよ。これでいいのか? いやでもこれもしかしてスパイが監視する的なニュアンスを持っている単語なんじゃ。もうちょっと穏便な感じの単語がいいのだけれど。うーん、うーん。

そんな時に私は、codicに助けを求めることにしています。codicは、プログラミングの際にいかにも使いそうな単語を集めたネーミング辞書です。まさにここまでダラダラ書いてきた事で悩んでいる子羊達をピンポイントで、狙ったサービスです。codicに先ほどの例の「監視」という単語を入れれば「monitor」や「observe」など見覚えのあるそれっぽい単語が出てくるじゃないですか。じゃあ observe にしよっかな。サービス開始当初は、単語数が少ないなというイメージだったのですが、最近は単語が充実してきた印象、かなり頼れるサービスに成長しています。

codic