Siempre he dicho que cada lenguaje tiene su potencia, si PHP son sus estructuras de datos (arrays) que permiten formas heterogéneas y de fácil administración y presentación, Perl es la versatilidad y potencia que proporciona su sintaxis escueta y orientada al resultado, Ruby es la reescritura en tiempo de ejecución... Python, sin duda, es la elegancia.
Como elegancia me refiero a la forma en la que se resuelven los problemas de codificación. Obviamente, en cada lenguaje hay soluciones para cada elemento de codificación, pero muchas veces, nos da la sensación de no haberlo resuelto de la forma más elegante... eso es lo que hace Python, nos da las herramientas necesarias para que no nos quede esa sensación, y el código resultante sea fácil y directo a la hora de leerlo.
Orígenes de Python
Python fue desarrollado por Guido van Rossum, a finales de los ochenta como un lenguaje académico, en el Centro de Matemáticas y la Informática de los Países Bajos, como un sucesor de ABC, capaz de manejar excepciones y trabajar con el sistema operativo Amoeba.
No obstante, no fue hasta 1991 cuando se liberó la primera versión de Python, la 0.9.0. En 1994 nació el grupo de usuarios de Python en comp.lang.python
y fue liberada la versión 1.0. La sintaxis de módulos es copiada de Modula-3, al igual que el sistema de captura de excepciones, y los detalles funcionales (lambda, map, reduce y filter) son aportación de un hacker que adoraba Lisp y que echaba de menos esas funciones en Python.
En sí, desde su nacimiento, Python ha estado ligado a la enseñanza y se ha dejado influenciar por otros lenguajes académicos, como Modula-3, Lisp y Haskell, por lo que es bastante sorprendente que este haya conseguido trascender y ser usado en entornos profesionales.
Como curiosidad, comentar que el nombre de Python, pese a que se podría considerar que es por la serpiente (de la que forma parte su logo), es realmente en honor al grupo cómico Monty Python.
La elegancia
En principio, podemos considerar que su rico vocabulario, le otorga la capacidad de poder resolver multitud de problemas con pocas palabras. Esto hace que la curva de aprendizaje sea un poco más elevada, pero realmente, no lo es.
Realmente, lenguajes como Ruby, ya integran la mayoría de cosas por las que es conocido Python, solo que, el estilo de Ruby es más basado en símbolos (signos y enlace de funciones y operadores) y Python se basa más en la palabra, por lo que, a razón de vista, al igual que pasa con SQL, es bastante más comprensible con solamente leerlo.
Por ejemplo, en otros lenguajes como PHP:
$a = ($d >= 1 && $d <= 5) ? 10 : 20;
En muy poco código, ya hay símobolos como el dólar ($), las comparaciones, el ampersand (&&), la interrogación (?) y los dos puntos (:) para separar una síntaxis que sería algo más extensa en un bloque condicional if. En Python, como se aboga por la sintaxis basada en la palabra, no existe este uso tal cual, sino que es:
a = 10 if (d >= 1 and d <= 5) else 20
La gran ventaja (aunque algunos no lo consideren así) de Python es que la anidación se realiza por indentación, lo cual obliga al programador a escribir bien e indentar correctamente el código. Esto sumado a las recomendaciones del PEP 8, hacen que el código sea, además de elegante, legible.
Conclusiones
Realmente no existe ninguna bala de plata (o panacea) a la hora de elegir un lenguaje de programación. Conozco a personas que prefieren lenguajes como PHP o Python por su sintaxis de palabra, y sin embargo otros prefieren lenguajes como Perl o Ruby por su uso de símbolos. Todo esto tiene que ver con las costumbres de cada programador, manías, y experiencia en cada uno de los campos. A mi, Python, me parece un gran lenguaje gracias a su sintaxis, su formato y recomendaciones. Ideal para entornos educativos y formar nuevos programadores, sin duda.