From 61ebcd0ad2dabb4649c280fcb86a8e780fde9032 Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Tue, 2 Sep 2014 19:43:27 +0800 Subject: [PATCH] add python-philosophy --- .../Python-Programming-Language.png | Bin 0 -> 33185 bytes python-philosophy/README.md | 85 ++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 python-philosophy/Python-Programming-Language.png create mode 100644 python-philosophy/README.md diff --git a/python-philosophy/Python-Programming-Language.png b/python-philosophy/Python-Programming-Language.png new file mode 100644 index 0000000000000000000000000000000000000000..85072689a4d069a44336fec116a1cd7dcc0f0294 GIT binary patch literal 33185 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 literal 0 HcmV?d00001 diff --git a/python-philosophy/README.md b/python-philosophy/README.md new file mode 100644 index 0000000..69331e9 --- /dev/null +++ b/python-philosophy/README.md @@ -0,0 +1,85 @@ +Python Philosophy(Python哲学) +============================================ + +![Python-Programming-Language](Python-Programming-Language.png) + +原文及译文 +---------------------- + +1. Beautiful is better than ugly. +美优于丑。 +2. Explicit is better than implicit. +直白优于隐晦。 +3. Simple is better than complex ***[1]***. +简单优于复杂。 +4. Complex is better than complicated ***[2]*** . +复杂优于纠结。 +5. Flat is better than nested. +扁平优于嵌套。 +6. Sparse is better than dense ***[3]*** . +稀疏优于稠密。 +7. Readability counts. +可读性有重要意义的。 +8. Special cases aren't special enough to break the rules. +特例可以,但不能特例到打破规则。 + * Although practicality beats purity. + 尽管我们在纯粹性和实用性之间是倾向实用性的。 +9. Errors should never pass silently. +出错决不允许静静地Pass。 + * Unless explicitly silenced. + 除非明确的说明了是静静地Pass。 +10. In the face of ambiguity, refuse the temptation to guess. +面对二义性情况时,要拒绝任何猜的诱惑。 +11. There should be one -- and preferably only one -- obvious way to do it. +显而易见的做法应该是一个,并且宁愿只有一个。 + * Although that way may not be obvious at first unless you're Dutch ***[4]***. + 尽管这个做法可能刚开始的时候不是那么显而易见的,毕竟你不是荷兰人`Python`之父。 +12. Now is better than never. +“现在” 优于 “决不”。 + * Although never is often better than **right** now. + 尽管 “决不” 常常优于 “**马上**”。 +13. If the implementation is hard to explain, it's a bad idea. +如果一个实现很难解释清楚,说明实现的idea有问题。 +14. If the implementation is easy to explain, it may be a good idea. +如果一个实现很容易解释清楚,那可能是个好的实现idea。 +15. NameSpaces are one honking great idea -- let's do more of those! +Namespace真真儿是个好想法 — 放手多多使用吧! + +### 译注 + +***[1] [2]*** 单词complex的意思是 复杂,而complicated 是 结构复杂。 + +在计算机中,单个模块复杂理解为complex,而多个模块互相关联的复杂理解为complicated。用计算机的术语,complicated是模块之间“耦合”很多,说明理解不深,设计不好。 + +软件的核心复杂度不可避免,但要这些集中一起,给使用一个干净高级的接口,也就是说:如果**complex**(核心复杂度)不可避免可以接受,但**complicated**一定要想办法去除,随着系统深入理解,模块职责的划分会更简明干净。 +PS: 核心复杂度的说明讨论可以参见[《代码大全》](http://book.douban.com/subject/1477390/)一书。 + +翻译上,complex 翻成 复杂,complicated 翻成 纠结。 + +***[3]*** 稀疏、稠密指的是代码行中操作的疏密。`C`的Geek,喜欢写稠密的代码,比如使用`++`,`--`运算符来压缩代码行。在Python看来,这个做法不可取,即会让代码更可能出错(如自增操作的负作用),也降低了代码的可读性。 + +***[4]*** 这里的荷兰人指`Python`之父Guido,参见说明:[武汉大学开源技术俱乐部 技术交流 第1期](http://qianjigui.javaeye.com/blog/266365 "http://qianjigui.javaeye.com/blog/266365") + +个人讨论 +---------------------- + +每一个点都千锤百炼;每一点都有直指内心的感觉。 + +既有指明大是大非的理念,又有指导细节操作的准则。 + +既有谆谆教导的推荐,也有声色俱厉的禁止。 + +看了N遍,每遍会深思。 + +`Python`说得内容对生活个人觉得一样有指导性,果然是哲学。 + +参考/阅读资料 +---------------------- + +1. Python Philosophy原文 [http://www.c2.com/cgi/wiki?PythonPhilosophy](http://www.c2.com/cgi/wiki?PythonPhilosophy) +1. [Python(programming language) - Wikipedia](http://en.wikipedia.org/wiki/Python_%28programming_language%29#Programming_philosophy) +1. [No programming language offers what Python does philosophically.](http://www.indicthreads.com/1062/no-programming-language-offers-what-python-does-philosophically/) +没有一门编程语言做到了Python在编程哲学上所做的。 +1. [武汉大学开源技术俱乐部 技术交流 第1期](http://qianjigui.javaeye.com/blog/266365)。 +这里还有其它有关Python有意思的东西。 +1. 核心复杂度的说明参见[《代码大全》](http://book.douban.com/subject/1477390/)一书。