No Zen do Python, eu posso entender a maioria das partes, exceto:
Now is better than never.
Although never is often better than *right* now
Então, acho que fazê-lo agora ou obter resultados agora é melhor do que nunca. Mas por que "nunca é melhor do que * agora" agora? Ou o que isso significa?
Para ver as 2 linhas acima no contexto, este é o Zen inteiro do 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!
Respostas:
A primeira parte, "agora é melhor do que nunca", é um mantra contra a procrastinação. Expressa a ideia de que, se você não continuar com isso, nunca conseguirá contornar isso.
A segunda parte, "nunca é melhor do que agora , é uma expressão do princípio YAGNI . A idéia é que você deve" sempre implementar as coisas quando você realmente precisa delas, nunca quando você apenas prevê que precisa delas ", porque muitas vezes descubra que não precisa deles, afinal, e descubra que acaba de desperdiçar esforços.
... bem, esse é o meu entendimento. Mas você teria que pedir ao autor para ter certeza.
fonte
Pode ser uma avaliação preguiçosa.
Exemplos:
vs
Onde o primeiro não faz muito até que os valores sejam necessários, mas o último aloca uma grande matriz.
Ou log
vs
Onde o primeiro não cria a sequência, a menos que o log esteja realmente ativado.
fonte
Eu acho que isso se aplica ao processo de design da linguagem, não apenas aos aplicativos. "Agora é melhor do que nunca." e "Embora nunca tenha sido muitas vezes é melhor do que direito agora." trata-se de encontrar o equilíbrio certo para o tempo e a qualidade da implementação. É o mesmo com o resto do zen. E, é claro, o Zen não tem um único significado, por design.
fonte
Eu acho que a primeira linha se refere a uma mistura de perfeccionismo e procrastinação. É melhor fornecer algo agora que funcione, mesmo que a funcionalidade seja básica ou o código "ainda não seja perfeito", do que trabalhar para sempre até você ficar sem vapor e o código acabar morto.
Quanto à segunda linha, acho que tem como alvo implementações apressadas. Geralmente, as coisas que você codifica têm um impacto duradouro, uma vez liberadas. Às vezes, alguém pode ser tentado a enviar rapidamente algo, especialmente por pressão, que se tornará um fardo para os anos seguintes. É chamado de "dívida técnica": decisões ruins de design, interfaces ruins ou apenas construções ruins levam a muitos problemas no caminho. O código raramente está sozinho, muitos outros códigos rapidamente se baseiam nele e, se você tomou más decisões, fica preso nele. Portanto, não apresse os lançamentos, garanta que tudo esteja bem.
fonte