嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

社会実装を伴う、数学的抽象化の禁忌 2

名付けの強調

プログラミングで、

  • 良い名前をつけると良い

という潮流が有ります。しかし、

  • やさしい名前をつけても、必ずしも愛されやすいとは限らない

という歴史的な事実も有ります。

私は、プログラミングの名付けは、星座方式(いて座はすごく、水瓶座は劣っている、とかを意味しない)程度で良いのではという立場ですが、

 

要するに、

  • 名付け自体がダメな、出来ない事隠す

につながり、

  • プログラミングの様な、社会実装を伴う

分野では、

  • すぐに禁忌につながる。(関数を含む)プログラムの各部分の意味は、そのプログラムの部分それ自体で有り、
  • 名前は意味を(必ずしも)代表しない。偶然代表出来る場合も有るが、出来ない場合の方が多い

のです。

 

 

昨日、体験した事

通信機器の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と名付けるのは良く無いが、
  • 大概で良い、区別が付けば良い

のでは無いか(星座方式)というのが、私の立場です。

それに対し、

  • 良い名前を付ければ、
  • より解りやすくなる

というのは、数学的抽象化の禁忌を犯す、とば口であると断ぜざるを得ません。

  • 名付け自体がダメな、出来ない事隠す

のです。

 

 

結論

これからも「社会実装を伴う、数学的抽象化の禁忌」でプログラミングが嫌いになる人は存在し続けることでしょう。