บรรทัดที่ 14 ของ The Zen of Python อ้างอิงถึง Dijkstra หรือไม่?


32

Python Zenกล่าวในบรรทัดที่ 14 ว่า:

แม้ว่าวิธีนี้อาจไม่ชัดเจนในตอนแรกเว้นแต่ว่าคุณเป็นชาวดัตช์

นี่เป็นการอ้างอิงถึงEdsger W. Dijkstraนักวิทยาศาสตร์คอมพิวเตอร์ชาวดัตช์ที่มีชื่อเสียงหรือไม่


5
ฉันเลือกตัวเลือก C: ส่วนใหญ่เป็นความพยายามในการให้ความรู้สึกที่ลึกซึ้งและลึกลับกับข้อความที่อาจใช้อย่างถูกต้องมากขึ้น
Jerry Coffin

คำตอบ:


48

แม้ว่าวิธีนี้อาจไม่ชัดเจนในตอนแรกเว้นแต่ว่าคุณเป็นชาวดัตช์

หมายถึงบรรทัดก่อนหน้า:

ควรมีอย่างน้อยหนึ่งวิธีที่ชัดเจนกว่าที่จะทำ

และเป็นที่ถกเถียงกันอยู่ว่ามันเป็นการอ้างอิงถึงความคิดของ Dijkstra ในการออกแบบภาษาที่แสดงในความคิดเห็นของเขาสำหรับภาษา GREEN (ADA ยุคแรก):

ฉันคิดว่ามันเป็นหลักการที่มั่นคงของการออกแบบภาษา - ไม่ต้องกังวลสำหรับการเขียนโปรแกรมเป็นกิจกรรมของมนุษย์ - ว่าในทุกแง่มุมโปรแกรมที่เทียบเท่าควรมีความเป็นไปได้น้อยสำหรับการเป็นตัวแทนที่แตกต่างกัน (ความเป็นไปได้สำหรับความแตกต่าง และการสั่งซื้อส่วนประกอบที่ไม่มีการจัดเรียงตามลำดับโดยพลการ) มิฉะนั้นลักษณะการเขียนโปรแกรมที่แตกต่างอย่างสิ้นเชิงจะเกิดขึ้นโดยไม่จำเป็นดังนั้นจึงขัดขวางการบำรุงรักษาความสามารถในการอ่านและสิ่งที่คุณมี สิ่งนี้ต้องการความกล้าหาญจากนักออกแบบภาษาในการตัดสินใจ ผู้ออกแบบภาษา GREEN ขาดความกล้าหาญซ้ำ ๆ และให้วิธีการหลายอย่างในการทำสิ่งเดียวกัน

ข้อความนี้ถูกใช้เพื่อระบุสิ่งที่ตรงกันข้ามระหว่างการออกแบบของ Python (มีทางเดียวเท่านั้นที่จะทำได้) ไปยัง Perl's ( มีมากกว่าหนึ่งวิธีที่จะทำ )

คำขวัญกึ่งทางการและไม่เป็นทางการ:

Perl: "มีมากกว่าหนึ่งวิธีในการทำ"

"มีวิธีการทำมากกว่าที่คุณจำได้อาจจะมากกว่าที่คุณจำได้"

Python: "ควรมีวิธีเดียวเท่านั้นและควรเป็นวิธีที่ชัดเจน"

อย่างน้อยเราก็พยายามเลือกวิธีที่เหมาะสม (ฉันเคยเห็นบรรพบุรุษของคำกล่าวนี้มาจาก Dijkstra: "ฉันคิดว่า ... " - Edsger W. Dijkstra บน GREEN, Ada รุ่นแรก)

การขุดเพิ่มเติมเปิดเผยหัวข้อเก่านี้ในรายชื่อผู้รับจดหมายของ Python ชื่อ "Dijkstra on Python" อย่างเหมาะสม เธรดมีศูนย์กลางอยู่ที่เครื่องหมายคำพูดเดียวกันและความแตกต่างทางปรัชญาระหว่าง Python และ Perl

แต่ชาวดัตช์ก็คือ Guido van Rossum อย่างที่ Tim Peters (ผู้แต่ง Zen of Python) เปิดเผย :

ในบริบท "ดัตช์" หมายถึงบุคคลจากเนเธอร์แลนด์หรือหนึ่งในวัฒนธรรมดัตช์ ฉันจะพูดภาษาฝรั่งเศสยกเว้นว่าคนฝรั่งเศสทุกคนฉันถามว่า "คุณจะทำสำเนารายการตื้น ๆ ได้อย่างไร" ไม่สามารถตอบได้

alist [:]

ดังนั้นฉันคิดว่ามันไม่ชัดเจนสำหรับพวกเขา มันต้องชัดเจนสำหรับชาวดัตช์เนื่องจากเห็นได้ชัดจาก Guido van Rossum (ผู้สร้าง Python ซึ่งเป็นชาวดัตช์) และมีข่าวลืออย่างต่อเนื่องยืนยันว่าทุกคนที่โพสต์ที่ comp.lang.python นั้นเป็นชาวดัตช์ด้วย คนฝรั่งเศสที่ฉันถามเกี่ยวกับการคัดลอกรายการไม่ใช่ผู้ใช้ Python ซึ่งเป็นข้อพิสูจน์ที่มากยิ่งขึ้น (ราวกับว่ามันต้องการมากกว่านี้)

หรือกล่าวอีกอย่างหนึ่งว่า "ชัดเจน" เป็นส่วนหนึ่งของการตัดสินทางวัฒนธรรม ไม่มีอะไรที่ชัดเจนในระดับสากลเกี่ยวกับภาษาคอมพิวเตอร์ใด ๆ ที่มีการชักชวนผู้เสนอแม้ อย่างไรก็ตาม Python ส่วนใหญ่เห็นได้ชัดสำหรับชาวดัตช์ บางครั้งคนอื่น ๆ ต้องทำงานเพื่อเรียนรู้วิธีที่ชัดเจนใน Python เช่นเดียวกับที่พวกเขาต้องเรียนรู้ที่จะชื่นชมดอกทิวลิปและการเลียนแบบของ Woody Woodpecker


1
ทำได้ดี. ฉันแน่ใจว่าได้เรียนรู้มากมายจากคำตอบของคุณ
ลูกแมวบางคน

ชาวดัตช์มีความน่าสนใจเป็นอันดับหนึ่งในภาษาคอมพิวเตอร์คอมไพเลอร์และวิทยาศาสตร์คอมพิวเตอร์โดยทั่วไป สิ่งที่น่าสนใจอีกอย่างเกี่ยวกับภาษาดัตช์และวิทยาการคอมพิวเตอร์คือคำสั่งของ Guido van Rossum เกี่ยวกับ algol: "มันบอกว่าความนิยมของ Algol 68 นั้นแปรผกผันกับ [... ] ระยะทางจาก Amsterdam" น่าสนใจ
Warren P

1
นั่นไม่ชัดเจนมาก;)
rocktheartsm4l

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.