January 3, 2017

Python ¿A qué se debe su fama?

Según el IEEE, Python se postula como el 3° lenguaje de programación más utilizado en el 2016, pisándole los talones a Java, y ligeramente por debajo de C.

Según el IEEE, Python se postula como el 3° lenguaje de programación más utilizado en el 2016, pisándole los talones a Java, y ligeramente por debajo de C (Fuente: este artículo). Pero la pregunta es, _¿qué hace a un lenguaje interpretado tan famoso en contra de grandes ejemplares con muchos más años de antigüedad?_ Bueno, aquí te presento algunos de los puntos que en mi opinión, hacen tan fuerte a este lenguaje.

Love Python <3
Love Python <3

Simple es mejor que complejo.

Si eres como yo, te encontrarás gran parte del día leyendo artículos interesantes que despliega Google Now, o que llegas a encontrar entre millones de correos que llegan porque te suscribes en todos lados y desafortunadamente eres demasiado flojo como para cancelarlas. Y una de las preguntas que más frecuentemente encuentras es, ¿Cuál es el mejor lenguaje para comenzar a programar? Bueno, seguramente encontrarás demasiadas respuestas a esta pregunta, y en mi opinión, todas son válidas hasta cierto punto; sin embargo, Python cubre muchos de los casos en los que un tech noob se podrá situar, y esa es la razón, por la que (desde mi punto de vista, y solo en ciertos casos) este es el mejor lenguaje para iniciar.

Sintaxis

Python tiene una sintaxis extremadamente simple. Esto es algo que puedes notar desde la creación de un programa Hello World:

print('Hello World')

Con Python, nos olvidamos de terminar las sentencias con ; o de utilizar palabras clave como end. Simplemente inserta un salto de línea y continua programando. También dejamos de declarar condiciones para while e if entre paréntesis y solo las escribimos en la misma línea.

Continuando con la simpleza en la sintaxis de python, es muy importante destacar el uso de :. Esta es una de mis ventajas favoritas, puesto que podemos librarnos de utilizar las llaves { } para definir funciones, ciclos, sentencias if, etc; únicamente utiliza : and keep coding happy 🙂

x = 0
while x < 10:
    x += 1

El lenguaje, es débilmente tipado, permitiéndonos hacer conversiones entre distintos tipos de objetos sin necesidad de declararlo. “Si parece un pato, es un pato”. Por el otro lado, no sufrimos de problemas al realizar erróneamente operaciones entre tipos distintos; un error se levantará al correr el programa y se facilita el debug.

Pero muchos se hacen la pregunta, ¿esto no genera malas prácticas a la hora de intentar programar en otros lenguajes? Mi respuesta es, como programadores, debemos estar preparados para aprender, desaprender, y volver a aprender. Este lenguaje te dará las bases, posteriormente al cambiar de lenguaje, deberás alinearte a las nuevas reglas.

Intérprete vs Compilador

5% de las personas opinan que el compilador gana la batalla, el otro 95% no sabe de computación. De acuerdo, esa es una desventaja, Python pierde la batalla al ser un lenguaje interpretado (No del todo, puesto que usualmente es compilado a bytecode dependiendo de la implementación, pero no entremos en detalles). Pero, ¿en realidad es una derrota? Utilizar un intérprete definitivamente tiene sus ventajas en muchos casos, por ejemplo.

Debugging

En muchos casos, la productividad es algo esencial, y mientras un compilador te va resultar en una mejor eficacia a la hora de ejecutar el programa, un intérprete te será más útil para detectar errores y hacer debug de manera más veloz. Por el otro lado, no terminarás creando muchos ejecutables antes de poder terminar tu programa.

Performance

Ya vimos que el compilador te da un mejor desempeño al tener un archivo ejecutable. Sin embargo, Python no está pensado para programar cosas enormes que puedan necesitar múltiples núcleos y procesos para funcionar (aunque es posible), y tomando en cuenta la capacidad que las computadoras hoy en día tienen, parece sin sentido el querer ganar microsegundos dejando de lado los intérpretes.

Escalabilidad y trabajo en equipo

Al utilizar un intérprete, es mucho más fácil el poder modificar el funcionamiento de tu programa y ejecutarlo. Incluso es posible añadir funcionalidad sin tener que compilar todo el programa de nuevo. Esto implica que también sea más sencillo trabajar en equipo.

Web Performance

Tomando en cuenta que al trabajar en web se utilizan conexiones con bases de datos e intercambio de información con el usuario, no tiene mucho sentido el utilizar compiladores que no mejorarán notablemente el desempeño, de esta manera nos enfocamos en el código.

Plataformas

Si eso no fue suficiente, esto lo será. Python al ser interpretado, es capaz de ejecutarse en cualquier sistema operativo. No se necesitan distintos archivos ejecutables para cada sistema.

Por el otro lado, Python también genera archivos .pyc que funcionan como la caché compilada para mejorar el desempeño, Gracias Python <3

Por cierto, el nombre se inspira en "Monty Python"
Por cierto, el nombre se inspira en "Monty Python"

Paquetes

Benditos sean los paquetes de Python.

-Juan Pablo Yamamoto (2017)

Python nos brinda de la posibilidad de añadir paquetes a nuestros programas. Podemos utilizar módulos escritos de igual manera en formato de python, o en C. Los paquetes son increíbles, y nos permiten añadir todo tipo de funcionalidad. Es por esto, entre otras muchas cosas, que python es el mejor lenguaje multipopósito.

Web Frameworks

Los frameworks para desarrollo web en python, simplemente abundan. Hay tanto de donde escoger: Django, Pyramid, Flask, Web2Py, Pylons, Cherry, TurboGears, y la lista no termina. Hay para todos los gustos y para todos los tamaños. Si vas para web developer, aprende python!

Guido Van Rossum, creador de Python
Guido Van Rossum, creador de Python

Comunidad

Necesitas ayuda con python? No por cualquier cosa es el 3° lenguaje más utilizado (cifras varían, lo sé, pero siempre está en los primeros cinco). Python tiene una muy extensa documentación, además de muchas comunidades dispuestas a apoyar. Si hay un lenguaje de programación en el que jamás te faltará ayuda, es este (lo sé, en otros también hay una extensa comunidad, easy haters).

Entonces, ¿a qué se debe la fama de Python?

Python es famoso por su simplicidad, porque te permite enfocarte en el funcionamiento del código más que en la sintaxis. Es asombroso por su capacidad de escalar mediante paquetes, y de ser utilizado en la gran mayoría de plataformas. Lo amamos porque es multipropósito. Es genial porque nos permite crear cosas sencillas de forma simple.

Definitivamente tiene sus desventajas, entre las que cabe destacar la falta de paralelismo y múltiples hilos de forma nativa, así como capacidades para programación funcional y orientada a objetos reducidas.

Sin embargo, es un lenguaje que vale la pena probar, además de que es muy recomendable para novatos.

Otras lecturas sobre el mismo tema:

Otros posts similares: