Files
translations/python-philosophy/README.md
2014-09-05 21:33:38 +08:00

91 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
![Python-Programming-Language](Python-Programming-Language.png)
Python PhilosophyPython哲学
============================================
原文及译文
----------------------
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.
如果一个实现难于解释清楚,那它是个差的想法。
14. If the implementation is easy to explain, it may be a good idea.
如果一个实现很容易解释清楚,那它可能是个好的想法。
15. NameSpaces are one honking great idea -- let's do more of those!
命名空间是个值得称道的极好想法 — 放手多多使用吧!
### 译注
***[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)
个人讨论
----------------------
既有指明大是大非的理念,又有指导细节操作的准则。
既有谆谆教导的推荐,也有声色俱厉的禁止。
每一个点都千锤百炼;每一点都有直指内心的感觉。
看了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/)一书。