Arquivo da categoria: python

Filosofia das linguagens

Estudando Python tive contato com o Easter Egg “The zen o python”,  é uma mensagem que traduz a filosofia da linguagem, isto me fez pensar sobre a filosofia de algumas outras linguagens, aquilo que a comunidade de desenvolvedores incorpora, que serve como um guideline quando se desenvolve com a linguagem e que influência a maneira da linguagem funcionar.

Abaixo listo algumas filosofias que encontrei,  a maioria dos princípios são aplicadas no principal motivo da existência de uma linguagem de programação, o desenvolvimento de software, e estão mais para filosofias de Software Craftsmanship.

Escolher uma linguagem de programação vai além que aprender sintaxe e APIs.. 😉

em Unix

Escreva programas que façam apenas uma coisa mas que façam bem feito.

Escreva programas que trabalhem juntos.

Escreva programas que manipulem streams de texto, pois esta é uma interface universal.”

http://pt.wikipedia.org/wiki/Filosofia_Unix

em C tem o “Spirit of C”

Trust the programmer.
Don’t prevent the programmer from doing what needs to be done.
Keep the language small and simple.
Provide only one way to do an operation.
Make it fast, even if it is not guaranteed to be portable.

fonte: http://www.artima.com/cppsource/spiritofc.html

em Python tem o “The zen of python”

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!

Sobre o python há um podcast sobre cada um dos conceitos contidos no Zen, e aqui, http://code.google.com/p/soc/wiki/PythonStyleGuide, uma lista de boas prática para atingir o zen

Em ruby encontrei alguns dizendo que certas coisas são o inverso do python, como várias maneiras de se fazer a mesma coisa.. e tem o “The ruby way”.