Im Zen von Python kann ich die meisten Teile davon verstehen, außer:
Now is better than never.
Although never is often better than *right* now
Ich denke, es jetzt zu tun oder jetzt Ergebnisse zu erzielen, ist besser als nie. Aber warum "ist nie oft besser als * gerade * jetzt"? Oder was heißt das?
Um die obigen 2 Zeilen im Kontext zu sehen, ist dies das gesamte Zen von Python:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
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.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Antworten:
Der erste Teil, "jetzt ist besser als nie", ist ein Mantra gegen Aufschub. Es drückt die Idee aus, dass Sie niemals dazu kommen werden, wenn Sie nicht damit weitermachen.
Der zweite Teil, "nie ist oft besser als jetzt" , ist Ausdruck des YAGNI- Prinzips. Die Idee ist, dass Sie "Dinge immer dann implementieren sollten, wenn Sie sie tatsächlich brauchen, niemals, wenn Sie nur vorhersehen, dass Sie sie brauchen", weil Sie es oft tun Finden Sie heraus, dass Sie sie doch nicht brauchen, und stellen Sie dann fest, dass Sie gerade Mühe verschwendet haben.
... nun, das ist mein Verständnis. Aber Sie müssten den Autor fragen, um sicher zu sein.
quelle
Es könnte sich um eine faule Bewertung handeln.
Beispiele:
vs.
Wo der erste nicht viel tut, bis die Werte benötigt werden, der letztere jedoch ein großes Array zuweist.
Oder Protokollierung
vs.
Wobei der erste die Zeichenfolge nur erstellt, wenn die Protokollierung tatsächlich aktiviert ist.
quelle
Ich denke, diese gelten für den Sprachentwurfsprozess selbst, nicht nur für Anwendungen. "Jetzt ist besser als nie." und „Obwohl nie ist oft besser als Recht jetzt.“ geht es darum, das richtige Gleichgewicht zwischen Zeit und Qualität der Implementierung zu finden. So ist es auch mit dem Rest des Zen. Und natürlich hat Zen von Natur aus keine einzige Bedeutung.
quelle
Ich denke, die erste Zeile bezieht sich auf eine Mischung aus Perfektionismus und Aufschub. Es ist besser, jetzt etwas bereitzustellen, das funktioniert, selbst wenn die Funktionalität einfach ist oder der Code "noch nicht perfekt" ist, als für immer daran zu arbeiten, bis Ihnen der Dampf ausgeht und der Code einfach tot endet.
Ich denke, die zweite Zeile zielt auf überstürzte Implementierungen ab. Normalerweise wirken sich die von Ihnen codierten Dinge nach der Veröffentlichung sehr lange aus. Manchmal könnte man versucht sein, schnell etwas zu versenden, insbesondere unter Druck, was für die folgenden Jahre zu einer Belastung wird. Es heißt "technische Schulden": Schlechte Entwurfsentscheidungen, schlechte Schnittstellen oder nur schlechte Konstrukte führen später zu großen Problemen. Code ist selten allein, viele andere Codes bauen schnell darauf auf, und wenn Sie schlechte Entscheidungen getroffen haben, bleiben Sie dabei. Beeilen Sie sich daher nicht mit Veröffentlichungen, stellen Sie sicher, dass es in Ordnung ist.
quelle