《 Python的禅宗》的第14行是否引用了Dijkstra?


32

Python的Zen在第14行指出:

尽管除非您是荷兰人,否则一开始这种方式可能并不明显。

这是否是对荷兰著名的计算机科学家Edsger W. Dijkstra的引用?


5
我选择选项C:这主要是试图赋予可能更准确地应用“平庸”的陈述深刻而神秘的感觉。
杰里·科芬

Answers:


48

尽管除非您是荷兰人,否则一开始这种方式可能并不明显。

指上一行:

应该有一种-最好只有一种-显而易见的方法。

有人认为这是参考迪杰斯特拉(Dijkstra)在其对GREEN语言(早期ADA)的评论中所表达的语言设计思想:

我认为这是语言设计的坚定原则-出于对作为人类活动进行编程的考虑-在所有方面,等效程序应该几乎没有不同表示形式的可能性(理想情况下,实现差异的可能性不应超出标识符的任意选择)以及语法上无序的组件的任意排序)。否则,不必要地出现完全不同的编程样式,从而妨碍了可维护性,可读性以及您所拥有的东西。这需要语言设计者勇于下定决心!GREEN语言的设计者一再缺乏这种勇气,并提供了多种执行同一操作的方法。

该帖已被用来指向对立面 Python的设计之间(这里只有一个办法做到这一点),Perl的(有不止一个办法做到这一点

半官方和非官方口号:

Perl:“有多种方法可以做到这一点。”

“这样做的方式比你想起的更多,甚至可能超过你所认识的。”

Python:“应该有一种-最好只有一种-显而易见的方法。”

至少我们试图选择正确的方法。(我看到这句话的始祖归因于Dijkstra:“我以为...”-Edager W. Dijkstra在GREEN上(Ada的早期版本))

进一步的挖掘揭示了Python邮件列表中的旧线程,该线程名为“ Dijkstra on Python”。该线程以相同的引号为中心,并且Python和Perl之间在哲学上有所不同。

但是,荷兰的确是吉多·范罗苏姆,蒂姆·彼得斯(Python中的禅的作者)显示

在上下文中,“荷兰人”是指来自荷兰的一个人,或者一个充满荷兰文化的人(乞求宽恕这个词)。我会说法语,除了我问的每个法国人都是“您如何制作一份清单的浅表副本?” 未能回答

一个列表[:]

所以我认为这对他们来说并不明显。不过,这对于荷兰人来说必须是显而易见的,因为这对于Guido van Rossum(Python的创建者,是荷兰人)来说是显而易见的,并且一直有谣言坚持认为,发布到comp.lang.python的每个人实际上也是荷兰人。我问过要复制列表的法国人不是Python用户,这甚至可以证明(似乎需要更多)。

或者,换句话说,“显而易见”在某种程度上是一种博学的文化判断。尽管受到支持者的支持,但对于任何一种计算机语言,实际上并没有什么普遍的明显之处。不过,大多数Python对荷兰人来说是显而易见的。其他人有时需要在学习一种明显的Python方法方面付出一些努力,就像他们在学习欣赏郁金香和伍迪·啄木鸟的模仿方面需要付出一些努力。


1
做得好。我肯定从您的回应中学到了很多。
SomeKittens 2012年

荷兰人在计算机语言,编译器和计算机科学方面开创了一些非常有趣的开端。daccess-ods.un.org daccess-ods.un.org关于荷兰和计算机科学的另一个有趣的引述是Guido van Rossum关于algol的声明:“据说Algol 68的受欢迎程度与距阿姆斯特丹的距离成反比”。有趣。
沃伦·P

1
好吧,这不是很明确;)
rocktheartsm4l 2016年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.