ネットワークに向かって呟いている言葉の履歴

2004年1月1日〜

3/21 名前をつける能力

古いのはこちら ー前ー ー後ー 最近の私 top_page


3/21 名前をつける能力

ひさしぶりのまとまった雨のおかげで空気のかさかさ感が無くなったのはいいのですが、寒いです。息が白いなんて久々だわ。

MacPower 4月号を読んでて、常々思っていたことがかかれていた頁がありました。「バスケの言い分」というコーナーでプログラマのバスケさんの散文が書かれているのですが、今月号は「名付け親にはプログラマを」でして、バスケさん曰く、プログラマがプログラム・コードを書くときに大切で必須の能力が名付けることだ、というような意味のことが書かれています。さらに、プログラム・コードをはアルファベットで書かれているから英語の意味を体感できるといいよ、と締めくくっているのですが、それはさておき名付ける能力です。

名前というのは、陰陽師(夢枕獏)を読んでいると呪であり、プリズム(神林長平)では名前を付ける能力は強力な武器であり、真の名前は親しい人にしか漏らさぬ慣習のある地域があることを考えても、大切な物です。いつ聞いたか忘れたけれど、むかしむかし、サバンナで人が喰い殺された。枯れた草の間から突然枯葉色の何かがでてきて鋭い爪と牙で殺された。恐ろしい、なんだかわからない何かがいる、と恐れていたが、その何かに「ライオン」と名付けたら無用に恐れることがなくなった、という話。名前を付けるのはいい方法ですよね。私は高校の時の先生の姿とあだ名(エラパチ、カマキリ、サルジイ)を思い出すと今でも笑っちまいます。

普段の生活で名付けるのは、そこに存在する物を特定するために行うことが多いです。ペットに名付けるとか。私が私の飼い猫にアプロと名前を付けようがピーターと名付けようが、猫は猫であり名前によって実体は変化しません。だからポチと名付けたってかまわないわけです。次に、私が古本屋を始めるとして、店名に「すノ古書店」と名付ければ普通ですが、「すノ中古紙販売店」と名付けると古新聞を持ち込まれたり再生パルプの発注をうけても文句が言えない気がします。

プログラムにおける名前はもっとシビアです。店ならそこにありますから、たとえば店に古本を並べて値段を付けておけば「名前から想像される店とは違って古本を商っているのです」ことが続くでしょう。これは脳内で認識する「論理の世界」が「五感で認識可能な実際の世界」で訂正されることで、認識を共通化できるからです。だけど、プログラムの場合は頭の中にしかないですから、そうはいかない。目で見たり触ったりできないからプログラム・コードを読んで「論理の世界」から想像する世界だけしかありません。動かして確かめるにも、プログラムの動きは五感じゃ捉えられないので、わかりません。ただでさえ認識を共通化するのは大変なのに、名前が不適当だともっと大変です。

プログラムというものは実体がないので、人の脳内に論理(ロジック)として存在するだけです。だから[概要,内容,定義]を適切に表現していない名前がつけられたロジックは、名前がないのと一緒で使えない、または、使いにくい。私は仕事でプログラム・コードを読んだり、読まされたり、評価したりすることがあるのですが、経験の浅い人のプログラムを読んでいて腹が立つのが、名前の付け方です。レビュー中に「なんだ、この名前は!」と逆上しそうになります。何でそれほど?と思うでしょうが、プログラムコードに記述された機能や処理や変数がいいかげんだど、それはプロダクションのプログラム・コードとして不良品だからです。不良品を「出来ました」と持ってこられたら逆上するでしょ?アマチュアならともかく。

昔聞いたことのあるひどい名付け(以下、ネーミング)は、女の子の名前、ですか。「あけみ処理を終了する判断は、ひとみが'1'になることで、もし、まさみが15より小さかったらまゆみに'off'をセットする」という感じ。せっぱ詰まった状況で夜遅く眠いところでこういうプログラム・コードを読まされた日には、コードを書いた奴を呪い、こういうコードを*私が*読む羽目になったことを呪い、核ミサイルの発射ボタンが手元にあったら押すでしょうな。

良くないネーミングで、よく見るのが名前の抽象度がその内容と合っていない事です。これはネーミングと言うより、機能分割や機能構成など設計にかかわる部分かもしれません。名付けるの下手な人は設計も下手な気がする・・・名付けるの*だけ*が下手な人なんて見たこと無いような・・・名前が不明確ということは、脳内のイメージも不明確なはず。もし名付けが下手な理由がごのう、じゃなかった語彙が乏しいためなら、言葉じゃ表現できない概念を思考しているわけで、言語化できないと人工言語で表現されるプログラムはヨレヨレになってしまう。名付けるのが下手だけで、良いプログラム・コードを書ける人は、言葉で考えていないわけで、何を使って思考しているか謎です・・・そういう分野もあるんだろうけど・・・先述の女の子の名前の人とかいったい頭の中では・・・。

まぁ、そんなわけで名付ける能力は職業的プログラマ必須の能力ということで。バスケさんの言い分に同感。バスケさんはもっと奥の話をしているのだけれど。なんて事を書いていたら、晴れたし洗濯機も止まったし、ご飯ですよ。

まぁ、そんな感じで。


古いのはこちら ー前ー ー後ー 最近の私 top_page

これはが制作しました。著作権を放棄してません http://suji.la.coocan.jp/

suji@mba.nifty.ne.jp