名付けの強調
プログラミングで、
- 良い名前をつけると良い
という潮流が有ります。しかし、
- やさしい名前をつけても、必ずしも愛されやすいとは限らない
という歴史的な事実も有ります。
私は、プログラミングの名付けは、星座方式(いて座はすごく、水瓶座は劣っている、とかを意味しない)程度で良いのではという立場ですが、
要するに、
- 名付け自体がダメな、出来ない事を隠す
につながり、
- プログラミングの様な、社会実装を伴う
分野では、
- すぐに禁忌につながる。(関数を含む)プログラムの各部分の意味は、そのプログラムの部分それ自体で有り、
- 名前は意味を(必ずしも)代表しない。偶然代表出来る場合も有るが、出来ない場合の方が多い
のです。
昨日、体験した事
通信機器のURLフィルタリング機能がおかしくなり、
- よく使うサービスが、http/2プロトコルで無く、http/3(QUIC)プロトコルを優先して使う様に、仕様変更がなされた
為だと解りましたが、
その調査の際、その通信機器(以下、Example社の製品名Exampleと呼称)で、
- example.net というURLがかなり引っかかっている事が
- ログに頻繁に出ている事を見つけ、
- 私が、これは公式のものか?
とAIに尋ねた所、いつも使っているAI1は、
- 公式ページは、example.com のみで有り、example.net はそうでは無い
との回答でした。
しかし、別に使う事が出来たAI2は、
- 公式ページは、example.com だが、
- example.net も、その通信機器の「設定(URLのホワイトリストなど)更新」に使われる、Example社が所有するドメインだ
との回答でした。
字面の公式(AI1案)と、実用上の公式(AI2案)の対立だと思いますが、
- 社会実装を伴う(example.net というドメインをブロックして良いか否か)
場合、「字面での」は、確実にダメだと思います。
- 「字面での」名付け(これも数学的抽象化の1例だと思いますが)自体が
- ダメな、出来ない事を隠す
- 保守・更新という、裏方を隠す
役割をしてしまい、ややもすると実害の原因になります。
良い名前をつけると良いか?
良い名前をつけると良いか? と問われると、
- 1に2と名付けるのは良く無いが、
- 大概で良い、区別が付けば良い
のでは無いか(星座方式)というのが、私の立場です。
それに対し、
- 良い名前を付ければ、
- より解りやすくなる
というのは、数学的抽象化の禁忌を犯す、とば口であると断ぜざるを得ません。
- 名付け自体がダメな、出来ない事を隠す
のです。
結論
これからも「社会実装を伴う、数学的抽象化の禁忌」でプログラミングが嫌いになる人は存在し続けることでしょう。