Python es uno de los lenguajes de programación más populares hoy en día a pesar de ser un idioma relativamente viejo. Fue creado a finales de los ochentas por Guido van Rossum --que dentro de la comunidad de Python es conocido como el Benevolente Dictador Vitalicio-- y su nombre está inspirado en el grupo de comedia británico Monthy Python.

A diferencia de los programadores de C, C# o incluso de PHP, aquella gente que ha estado llegando a **Python**, --como la mayoría que llega a Perl y a Ruby-- lo ha hecho porque disfrutan de programar y buscan un lenguaje que les facilite hacer mejor algo que les gusta. Este lenguaje recoge lo mejor de otros y es reconocido porque es muy limpio y legible, lo que facilita mucho la tarea de los programadores.

Su filosofía queda plasmada en un documento escrito por Tim Peters (un experimentado desarrollador en este lenguaje) que vale la pena compartir, porque a pesar de estar pensado para un lenguaje de programación es una filosofía muy práctica para cualquier proyecto que tengamos en mente:

El zen de Python:

  • Hermoso es mejor que feo.
  • Explícito es mejor que implícito.
  • Simple es mejor que complejo.
  • Complejo es mejor que complicado.
  • Sencillo es mejor que anidado.
  • Escaso es mejor que denso.
  • La legibilidad cuenta.
  • Los casos especiales no son lo suficientemente especiales para romper las reglas.
  • Lo práctico le gana a la pureza.
  • Los errores no debe pasar en silencio.
  • A menos que sean silenciados.
  • En cara a la ambigüedad, rechazar la tentación de adivinar.
  • Debe haber una - y preferiblemente sólo una - manera obvia de hacerlo.
  • Aunque esa manera puede no ser obvia en un primer momento a menos que seas holandés.
  • Ahora es mejor que nunca.
  • Aunque "nunca" es a menudo mejor que "ahora mismo".
  • Si la aplicación es difícil de explicar, es una mala idea.
  • Si la aplicación es fácil de explicar, puede ser una buena idea.
  • Los espacios de nombres son una gran idea ¡hay que hacer más de eso!

El texo lo podemos encontrar junto con ejemplos que ilustran su aplicación y que nos permiten (a aquellos que tengan algunas nociones básicas de programación) apreciar el uso y sencillez de este lenguaje.

Estos principios resumen la filosofía de **Python**. Son tan prácticos y han hecho de este lenguaje algo tan sencillo y agradable que incluso podemos encontrar libros de Python para niños. Además tenemos el caso de que las comunidades de desarrolladores son tan abiertas que a veces abarcan campos que parecieran no tener mucho en común con la programación, como lingüistas o entomólogos.

**Python** es el lenguaje ideal para cualquiera que quiera adentrarse a la programación sin una idea clara de lo que quiere hacer o sin conocimientos previos, su filosofía zen lo avala. ¿Qué esperas para conocerlo? A final de cuentas es programming for human beings.

Participa en la conversación

40 Comentarios

Deja tu comentario

  1. «Aunque esa manera puede no ser obvia en un primer momento a menos que seas holandés.»

    Yo soy holandes. Fuck yea.

  2. Ciertamente, me da por las pelotas que a cada rato digan que Python es «para los que aprenden a programar».. obviamente tienen intenciones denigratorias para con el lenguaje y la comunidad, porque cualquier lenguaje es digno de ser «el primer lenguaje», Python no es simple como Windows, Python es simple como el agua, en su esencia, no en la intencion.

    Yo aprendi a programar con Haskell (funcional, Python es en parte basado en su filosofia), luego le di a C y obviamente senti el golpe.. Pero eso fue en la facultad, Python lo aprendi por cuenta propia y senti mucha satisfaccion porque me tope con un lenguaje agradable y muy instrumental. Es una forma distinta de programar, sinceramente no podria explicar como fue la experiencia porque solo la practica la define.

    En cuanto a la velocidad, es muy obvia la diferencia (sobre todo con el principal competidor, Java >:E), y la causa tambien es obvia, asi que dejen las quejas de lado, porque las ventajas son mayores.

    Me llamo la atencion que nadie citara que hay dos Zen de Python.. x3 mundogeek (net) /traducciones/python-idiomatico/

    Otra: Estaria bueno que vean como se pone en practica el Zen: stackoverflow (com) /questions/228181/the-zen-of-python

    Saludos cordiales, una simple voz en la oscuridad.-

  3. Puedes importar el modulo «this» y retorna el Zen (:

    Python es viejo, pero ha empezado a ganar mucha popularidad y seguramente, en los proximos años sea como C (:

  4. solo por curiosidad, alguien ha intentado aprender Go ?

    Debo reconocer que parte de mi murio cuando lei que el lenguaje de google elimino las herencias. xD

    a alguien le ha gustado Go ?

    1. yo he intentado un poco de Go, pero la verdad no soy muy fan aun… aunque la cuestion de las concurrencias (los canales) me parece de lo mas interesante… sin embargo no me he metido mucho aun

  5. el zen ese suena muy lindo al principio…pero luego te das cuenta que es una limitacion…

    tienes que hacer las cosas como guido quiere y no como a ti se te antoja…realmente esa deberia ser la frase y no :

    Debe haber una – y preferiblemente sólo una – manera obvia de hacerlo.

    lo utilice hace ya algunos años y nunca me emociono, creo que para ser interpretado y moderno es restrictivo (aunque esto es una virtud a la hora de incorporarlo a grandes empresas donde es necesario un codigo mas standart)…en lo personal prefiero a ruby…tiene multitud de herramientas y funciones (muchas de ellas hacen lo mismo :D) pero a la final tu eres quien decide como deseas hacerlo…de alguna manera ruby incentiva el pensamiento lateral

    se dice que el codigo python varia muy poco entre programadores, un mismo script programado por distintos programadores tiene muy pocas diferencias, eso al comienzo si estas aprendiendo a programar puede ser bueno…pero realmente una de las mejores cosas de aprender a programar es aprender nuevas maneras de hacer las cosas, ver como otras personas con menos lineas y un codigo lindo logran lo mismo que tu…y eso lo permite ruby…recuerdo que hace algun tiempo escribi un script y lo compare con el realizado por 2 amigos…tenia casi con exactitud la misma cantidad de lineas pero la implementacion era totalmente diferente…y aun asi los 3 codigos eran mas que entendibles a simple vista…para mi eso es grandioso……

  6. Solo hay que recordar que cada lenguaje tiene un uso diferente, Python es muy bueno para la web, pero si hablamos de programacion de sistemas lo ideal es C o C++.

  7. Aprender un lenguaje de programación te toma dos o tres semanas. Aprender a programar te toma toda una vida….

  8. Desde mi punto de vista los lenguajes interpretados siempre han sido un problema, yo programo en c++, he programado en bastantes lenguajes, nunca en python aunque tiene muy buenas bibliotecas para programación científica, desde mi punto de vista va bastante lento claro que hacer las mismas cosas (funciones) en c/c++ son mas lentas el resultado en costo de computo es mas satisfactorio, y la verdad que me divierte mucho programar en c/c++ ademas muchos lenguajes modernos tienen una sintaxis similar o se basaron en sus ideas, así que si quieres aprender a programar y de por si tener la certeza que se te hará fácil aprender otro lenguaje aprende c/c++.

    1. Yo he programado durante años con Delphi (Object Pascal), con C, con C++, y desde hace cinco lo hago con PHP y JavaScript, y no los echo de menos.

      Como todo, tiene sus ventajas y sus contras. Hoy en día la velocidad de ejecución, para determinadas tareas, no es problema.

    2. Desde mi punto de vista los lenguajes compilados siempre han sido un problema, yo programo en ensamblador, he programado en bastantes lenguajes, nunca en c++ aunque tiene muy buenas bibliotecas para programación científica, desde mi punto de vista va bastante lento claro que hacer las mismas cosas (funciones) en ensamblador son mas lentas el resultado en costo de computo es mas satisfactorio, y la verdad que me divierte mucho programar en ensamblador ademas muchos lenguajes modernos tienen una sintaxis similar o se basaron en sus ideas, así que si quieres aprender a programar y de por si tener la certeza que se te hará fácil aprender otro lenguaje aprende ensamblador.

      :-P

      1. FAIL. Aunque programes en ensamblador, el código todavía tiene que se trasformado a objeto y enlazado. Y ensamblador no tiene sintaxis, es vil código maquina.

      2. 01101100011011110111001100100000011011000110010101101110011001110111010101100001011010100110010101110011001000000110010001100101001000000111000001110010011011110110011101110010011000010110110101100001011000110110100111110011011011100010000001100001011100000110010101110011011101000110000101101110

    1. Mmm bueno, tecnicamente se puede, usando ASE (Android Scripting Engine, lo buscás en Google Code). Es un proyecto de Google mismo para portar ciertos lenguajes de scripting a Android.

      Buscalo ;)

  9. no importa el lenguaje de programación que se utilice, sea c, c++,python, c#, java, visual basic, asp, php, jsf, … etc etc, lo que importa es tener buenas practicas de desarrollo, porque por mas «zen» que sea sea el lenguaje de programación, todo el código creado se puede convertir en un infierno.

  10. No se de donde saca el autor que los programadores de C#, PHP y C no disfrutan programar, esta bien que quieras publicitar python, pero no afirmes cosas que nadie ha demostrado y que tampoco son ciertas, yo disfruto mucho programando en C# con mi Visual Studio 2010 y cuando estaba en la universidad me divertia programando en C.

    1. Cierto, pero la realidad es que, según se, el eslogan de Python para los que aun disfrutan de programar es de parte de la gente de Python, no del autor de este post… Es solo propaganda vamos…

    2. Bueno, nunca traté de dar a etender eso, más bien lo que quería expresar es que cuando gente que no sabe nada de programación quiere empezar a hacerlo muchos llegan a Python debido a su sencillez y su legibilidad.

      La mayoría de los que estudiamos algo relacionado con programación (yo soy electrónico, pero algunas materias de programación tuve) vimos C o C# porque son los más comunes y los más usados a la hora de dar clases.

      Yo no sé mucho de Python, pero sé que con mi enfoque de ingeniero electrónico, tal vez me hubiera gustado más aprender Python en la escuela.

      Y no es que no me divierta C o aborrezca C#, creo que es más que nada porque no soy de Sistemas o Informática.

      No afirmo lo que nadie ha demostrado, sólo afirmo que hay más gente no relacionada con la informática programando en Python que en otros lenguajes de programación.

      1. Soy programador de muchos años con PHP, y conozco Python. Python es definitivamente mejor. El problema es que no corren programas Python en cualquier servidor compartido, por lo que está muy limitada la posibilidad de distribución de esos programas. Su desempeño en servidores virtuales o dedicados es asombroso.

        Excelente Post, sencillo e inspirador para los que andan buscando aprender un lenguaje. Gracias.