diary/Kojima

・Now is Better than Never

「Python チュートリアル」の表紙の最上部に表題の言葉が印刷されていて, 「いい言葉だな」と思って Google で引いてみると,これはPython の guru で ある Tim Peters がまとめた "Zen of Python" と呼ばれる文書の一部らしいこ とが分かった.

"Zen of Python" はこのあたりから辿れるし, pythonを起動して >>> import this しても表示されるけど,彼が得た 20 の悟りのうち 19 が書き下されたものということ.

面白いので,とりあえず試訳をつけてみるけど python.jp なサイトには正式な邦訳があるような気はする.

1. Beautiful is better than ugly.
   (美は醜よりもいい)
2. Explicit is better than implicit.
   (明示的は暗黙的よりもいい)
3. Simple is better than complex.
   (単純は複合よりもいい)
4. Complex is better than complicated.
   (複合は複雑よりもいい)
5. Flat is better than nested.
   (フラットはネスト状よりもいい)
6. Sparse is better than dense.
   (疎は密よりもいい)
7. Readability counts.
   (読みやすさが大事)
8. Special cases aren't special enough to break the rules.
   (特例はルールを破っていいほど特別ではない)
9. Although practicality beats purity.
   (しかしながら,実用性は純粋さに勝る)
10. Errors should never pass silently.
   (エラーは黙って処理されるべきではない)
11. Unless explicitly silenced.
   (黙って処理されるよう明示された場合を除き)
12. In the face of ambiguity, refuse the temptation to guess.
   (曖昧さに直面した際は,当て推量する誘惑を拒否せよ)
13. There should be one-- and preferably only one --obvious way to do it.
   (そのことをするのに一つの,できれば唯一の,明確な方法があるはずだ)
14. Although that way may not be obvious at first unless you're Dutch.
   (しかし,そのことはオランダ人(Guido ?)でない限り、最初のうちは明らかではない)
15. Now is better than never.
   (「今」は「いつか」よりもいい)
16. Although never is often better than *right* now.
   (しかし,「いつか」は「今すぐ」よりもいいことが多い)
17. If the implementation is hard to explain, it's a bad idea.
   (説明しづらい実装は,アイデアがよくない)
18. If the implementation is easy to explain, it may be a good idea.
   (簡単に説明できる実装は,多分いいアイデアだろう)
19. Namespaces are one honking great idea -- let's do more of those!
   (名前空間はすばらしいアイデアなので積極的に活用しよう)

13,14 のあたりは,Perl の哲学である TMTOWDI(There's More Than One Way to Do It: やり方は一つじゃない)に対するアンチテーゼ的な哲学で, 「実用性」から生まれてきた perl と,その perl の問題点を認識した python, という形で面白い対比という気はする.

15 の "Now is better than never." も,この言い回しだけを見ると「とにかく初めようぜ」 という感じだけど,16 でちゃんと釘を刺しているあたりも気が効いている印象.

しかし,本来論理だけで動くはずのコンピュータの世界に,"Zen of .." とか "AI Koan" とか, 直感的な悟りの重要性を示すような文書が,こういう風に広まっているのは面白いところ.

まぁ,コーディングは論理だけど,アイデアの部分はひらめきだから,禅の「悟り」のようなひらめきが ソフトウェアの世界でも重要なことは論を待たないと思うけど,そういうひらめきをコードから読みとるには, 読む側の人間にも同等の能力が必要とされるあたりは悩ましいところ.そのヘンも禅の印可の手続きと似ているような 気はする.



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:41