18 de setembro de 2008

O Zen de Python


O Zen de Python
por Tim Peters

Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Plano é melhor que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para se quebrar as regras.
Embora a simplicidade supere o purismo.
Erros nunca deveriam passar silenciosamente.
A menos que explicitamente silenciados.
Ao encarar a ambiguidade, recuse a tentação de adivinhar.
Deveria haver uma – e preferencialmente apenas uma – maneira óbvia de se fazer isto.
Embora aquela maneira possa não ser óbvia à primeira vista se você não for holandês.
Agora é melhor que nunca.
Embora nunca, seja muitas vezes melhor que pra .
Se a implementação é difícil de explicar, é uma má idéia.
Se a implementação é fácil de explicar, pode ser uma boa idéia.
Namespaces são uma idéia estupenda – vamos fazer mais deles!


Acho que muitas boas práticas de programação estão incluídas neste texto e, principalmente, muitas características positivas da linguagem Python, como:
Legibilidade conta.
Por isso eu acho que fazer desses conhecimentos, hábitos, pode ser muito positivo para o trabalho de programadores de quaisquer linguagens.




Notas
  • Zen – De acordo com o Wikicionário: Do japonês zen (meditação religiosa).
  • O texto, aqui traduzido, pode ser obtido a partir do próprio interpretador Python (é um Easter Egg). Para isto, basta usar a seguinte linha de código:
import this


Atualizações
  • 2009/02/26exatamente agora passa a ser traduzida como pra já, atendendo a sugestão do leitor anônimo.
  • 2008/10/23Namespaces deixa de ser traduzida e a observação sobre ela é excluída. Purity e may be passam a ser traduzidos, respectivamente como purismo e pode ser. [Agradecimentos a Vinícius Assef e ao companheiro anônimo pelos comentários que estimularam estas mudanças!]

9 comentários:

  1. Ótimo post. Não conhecia este easter egg. Acredito que há coisas que ficam mais claras não traduzidas. Para mim, namespace é uma delas.

    ResponderExcluir
  2. Eu também não gostei muito da tradução. Por isso deixei uma nota no final do texto. Estou pensando em não traduzir esta palavra, alterando o post, mas ainda não decidi...
    Obrigado pelo comentário! :)

    ResponderExcluir
  3. Eu trocaria "Embora a simplicidade supere a pureza" por "Embora a simplicidade supere o purismo".

    Trocaria também "Se a implementação é fácil de explicar, deve ser uma boa idéia." por "Se a implementação é fácil de explicar, pode ser uma boa idéia."

    Também não traduziria Namespaces, por ser um termo técnico.

    No mais, ficou legal. :-)

    ResponderExcluir
  4. Boas observações, Vinícius!

    Já vou alterar o texto.
    Quanto a namespaces, vou deixar de traduzi-lo.

    :)

    ResponderExcluir
  5. "Pra já" ou "pra agora" é mais veemente e traduz melhor a idéia do que "exatamente agora".
    ;-)

    ResponderExcluir
  6. Salve!
    Boa ideia, cara! Não tinha visto por esse lado. Já alterei o texto, mas faltou o seu nome para dar os créditos...
    []!

    ResponderExcluir
  7. Utilizei sua tradução no meu blog.... mas citei a fonte ok ...
    Deixei o link no website do comentário.
    Grande abraço

    ResponderExcluir