読者です 読者をやめる 読者になる 読者になる

TL 眺めていて命名について思ったコトなど。

C++ Scala

TL で興味深い話がありました。

 名前は、それが何かを十分に表現するために必要なものです。短すぎて意味が分からないというのは良くない、というのはよく言われますよね。しかし長ければ良いというわけではないというのもその通りだと思います。

 ではその最適な長さとは何によって決まるのか。
例えば

struct person
{
    string name_;
};

があったとき、name_ という変数名が分かりにくい、という意見は少数派ですよね。一方、

struct person
{
    string name1_;
    string name2_;
};

これは分かりにくいという意見が多いと思います。first name と last name かもしれないし、本名と表示名かもしれない。つまりその名前が使われるコンテキスト、スコープによって妥当性が評価されるというわけです。

 プログラムがもっと複雑になってくると、そのコンテキストを構成する要素が増えてくるので、それだけ命名の妥当性が大切になってきます。しかし、複雑になってくると、名前を付けるほどでもないモノも出てきます。無名関数やプレイスホルダーが喜ばれるのもそういうことなのかなと思います。先程の流れで post されたこれ↓なんかが象徴的なのかなと思います。

 プログラムのコードが短く書ける言語では、他の言語で省略できなかったものを省略できたりするのでコンテキスト全体が短くなります。そもそも命名するまでも無いものに対して、妥当な名前が何かと考えるコト事態、不自然ですよね。

Scala Style Guide v1.2.5 documentation » 命名規約 » 表現の簡潔さに関する特記事項¶

言語仕様は文化を形成するですね。
Scala ちゅっちゅ!

 言語仕様云々は別としても、例えば Java でも C++ でも短い名前に価値を持たせるのも一つのセンスだと思います。長い名前のモノがたくさんある中に短い名前のモノを紛れ込ませることで、それが「大して意味の無いものですよ」と強調する効果があるからです。書きやすさにかまけて短い名前ばっかり付けるのは昔から dis られますが、「短いより長いほうが良い」が万事正しいわけではないですね〜。

ーーーーーーーー
Boost 勉強会がもうすぐ始まるというのに何で僕は blog を書いてんのか...。