Czy 14-ty wiersz Zen z Pythona odnosi się do Dijkstry?


32

Zen Pythona stwierdza w linii 14, że:

Chociaż na początku taki sposób może nie być oczywisty, chyba że jesteś Holendrem.

Czy to nawiązanie do słynnego holenderskiego informatyka Edsgera W. Dijkstry ?


5
Wybieram opcję C: jest to głównie próba nadania głębi i tajemniczości wypowiedziom, do których „banalność” mogłaby być dokładniej zastosowana.
Jerry Coffin

Odpowiedzi:


48

Chociaż na początku taki sposób może nie być oczywisty, chyba że jesteś Holendrem.

odnosi się do poprzedniej linii:

Powinien być jeden - a najlepiej tylko jeden - oczywisty sposób na zrobienie tego.

Argumentowano, że ma to związek z przemyśleniami Dijkstry na temat projektowania języka, wyrażonymi w jego komentarzach do języka ZIELONEGO (wczesna ADA):

Pomyślałem, że to solidna zasada projektowania języka - w trosce o programowanie jako działalność człowieka - że pod każdym względem równoważne programy powinny mieć kilka możliwości różnych reprezentacji (możliwość różnic, które nie wykraczałyby poza arbitralny wybór identyfikatorów oraz dowolne porządkowanie składni nieuporządkowanych składniowo). W przeciwnym razie powstają zupełnie inne style programowania, co utrudnia utrzymanie, czytelność i to, co masz. Wymaga to od projektantów języków odwagi, by podjąć decyzję! Projektantom języka ZIELONEGO wielokrotnie brakowało tej odwagi i zapewniono wiele sposobów na zrobienie tego samego.

Ten cytat został użyty, aby wskazać antytezę między projektem Pythona (jest tylko jeden sposób, aby to zrobić) na projekt Perla ( Jest więcej niż jeden sposób, aby to zrobić )

Hasła, półoficjalne i nieoficjalne:

Perl: „Jest na to więcej niż jeden sposób”.

„Jest więcej sposobów na zrobienie tego niż możesz sobie przypomnieć, prawdopodobnie więcej niż możesz to rozpoznać”.

Python: „Powinien istnieć jeden - a najlepiej tylko jeden - oczywisty sposób”.

Przynajmniej próbowaliśmy wybrać właściwą drogę. (Widziałem prekursora tej uwagi przypisanej Dijkstrze: „Myślałem ...” - Edsger W. Dijkstra o GREEN, wczesnej wersji Ady)

Dalsze kopanie ujawniło ten stary wątek na liście mailingowej Python, odpowiednio nazwany „Dijkstra on Python”. Wątek koncentruje się wokół tego samego cytatu i różnic filozoficznych między Pythonem a Perlem.

Ale Holender rzeczywiście jest Guido van Rossum, jak ujawnia Tim Peters (autor Zen of Python) :

W kontekście „holenderski” oznacza osobę z Holandii lub osobę nasyconą kulturą holenderską (błagając o wybaczenie za to nadużycie słowa). Powiedziałbym po francusku, z wyjątkiem tego, że każdy Francuz, o którego pytanie zapytałem „jak zrobić płytką kopię listy?” nie odpowiedział

alist [:]

więc myślę, że to nie jest dla nich oczywiste. To musi być oczywiste dla Holendrów, ponieważ jest oczywiste dla Guido van Rossuma (twórcy Pythona, który jest Holendrem), a uporczywe plotki utrzymują, że każdy, kto publikuje na comp.lang.python, w rzeczywistości jest również Holendrem. Francuzi, których pytałem o kopiowanie listy, nie byli użytkownikami Pythona, co jest jeszcze bardziej dowodowe (jakby potrzebowało więcej).

Innymi słowy, „oczywiste” jest po części wyuczonym, kulturowym osądem. Tak naprawdę nie ma nic powszechnie oczywistego w żadnym języku komputerowym, pomimo złudzonych zwolenników. Niemniej jednak większość Pythona jest oczywista dla Holendrów. Inni czasem muszą trochę popracować nad nauką jedynego oczywistego sposobu w Pythonie, tak samo jak muszą popracować nad nauką doceniania tulipanów i personifikacji Woody Woodpecker.


1
Dobra robota. Na pewno wiele się nauczyłem z twojej odpowiedzi.
SomeKittens

Holendrzy mają bardzo ciekawe nowości w języku komputerowym, kompilatorach i informatyce w ogóle. Innym interesującym cytatem na temat holenderskiej i informatycznej jest wypowiedź Guido van Rossuma na temat algolu: „powiedziano, że popularność Algolu 68 jest odwrotnie proporcjonalna do [...] odległości od Amsterdamu”. Ciekawy.
Warren P

1
Cóż, to nie było bardzo wyraźne;)
rocktheartsm4l

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.