がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

"The Zen of Python" と "TMTOWTDI"

いやまぁ「TMTOWTDI の字面をすっかり失念する事が多いから書いておく」とかいう超絶健忘録的な記事なのですがおいといて。

割と個人的に「対極っぽく見えるんじゃないかなぁ」と思っているのが、"The Zen of Python" と "TMTOWTDI"。

TMTOWTDI の"There's More Than One Way To Do It."をDeepLしてみるとこんな感じ。

やり方はひとつじゃない。

Google翻訳だとこんな感じ。

それを行うには1つ以上の方法があります。

まぁそのまんま。
おいちゃん的にはDeepLのほうが好みな訳語かな。

"The Zen of Python" は色々と書いてあるんだけど、TMTOWTDI と対比するのであればこの一文だろうなぁ、と。

"There should be one-- and preferably only one --obvious way to do it."

そのためには、1つ、できれば1つだけ、明白な方法があるはずです。

それを行うための明白な方法は1つ、できれば1つだけでなければなりません。

んで、以下、おいちゃんの私見

趣味なら「お好きに」なんだろうけど、お仕事だと正直おいちゃんは "The Zen of Python" 推しかなぁ。
小説とかその辺ならともかく、技術系だと、プログラムだろうが日本語だろうが基本的に「表記は揺らさないで欲しい」と思ってる。なんでかっていうと「同じような意味の事を別の文で記載している場合、一定確率で"別の事"が書かれている」から*1

もうちょっと思考を深掘りすると
・「同じ意味」と思われることが「別の記法」で書かれている
・本当に「完全に同じ」なら、「同じ記法」で書けばいいのではなかろうか?
・という事は、わざわざ「別の記法」で書いているからには「同じ記法ではなく、別の記法で書く理由」が存在する可能性が想起される
というあたりまで考えるので、結果的に「じゃぁその"別にすべき理由"はなんだろうか?」ってのを考えてしまう。

うんまぁその辺の「微妙な差異」が、手書き時の筆跡にも似た「プログラマの微妙な個性」だったりして、デバッグとかに役立つ事もあるんだけど*2
基本的には「同じ事を書くんなら同じ書き方をしてくれる」ほうが、特に「後からjoinする人間」的には楽だったりするんだよねぇコード読む時。

そんな所で個性だされても困惑するだけだし。
それは個人のプロダクトでやってよ、と、しか。

なのでまぁ、おいちゃんの好みは "The Zen of Python"。
今回取り上げた以外でも

Explicit is better than implicit.

とか

Sparse is better than dense.

とか

In the face of ambiguity, refuse the temptation to guess.

とか

If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.

とか(それ以外もよいんだがその辺言い出すと全部書き出すことになるので省略)。

まぁこの辺は色々な思考があるんだろうけど、とはいえ「自分と同じような感覚」のものを見つけると、ちょっと嬉しいよねぇ*3

*1:いやまぁ「同じ文で別のことを記載する」事がないわけじゃないんだけど

*2:古(いにしえ)の現場だと、ばぁじょんかんり、なんてもんは存在しないから、色々と推理や推測や考古学が必要になるのです……

*3:ってのを、一番初めに見た時はしみじみと感じたものです