¿Por qué aprender a programar en Python?

Python, programar en Python, Python lenguaje

Haciendo una analogía con el fútbol, Python no sería ni un excelente delantero ni un gran defensa, sino un jugador multifuncional capaz de atacar y defender bastante bien. Aprender a programar en Python se ha vuelto popular.

Indudablemente el lenguaje Python se ha transformado en un fenómeno en los últimos años. Es casi una parada obligada de aprendizaje para quienes quieren trabajar en el área de ciencia de datos o inteligencia artificial.

¿Por qué su popularidad? Sin duda que la disponibilidad de poderosas y rápidas librerías que permiten construir soluciones complejas agregando muy poco código han sido un factor esencial. Sin embargo, ello no es lo único que explica su éxito y rápida adopción.

Probablemente si uno conversa con ingenieros que trabajan en el mundo del software empresarial (bancos, compañías de seguros, instituciones de salud, etc.) les dirán que Python no existe y que ellos usan lenguajes como Java o C#.

Por otra parte, si lo hace con ingenieros que escriben productos de software donde se requiere optimizar el código en cuanto a rapidez les dirán que no hay como C o C++.

Uno de los grandes desafíos de los diseñadores de un nuevo lenguaje de programación es lograr un buen balance tomando en cuenta los compromisos (trade-offs) involucrados en las decisiones. Es posible que aquí residan las principales razones del éxito de Python.

Haciendo una analogía con el fútbol, el lenguaje Python no sería ni un excelente delantero ni un gran defensa, sino un jugador multifuncional capaz de atacar y defender bastante bien.

Lenguajes Python y Java: la disputa por el primer lugar

Revisemos algunas de las decisiones importantes comparando Python con el lenguaje Java. ¿Por qué con Java? Porque Java ha sido un lenguaje dominante por décadas y porque aún disputa la popularidad con Python (ver figura)¹.

¿Cuál es su lenguaje de programación primario?

lenguaje de programación primario

Python tiene tipos de datos dinámicos

En los lenguajes estáticamente tipificados, como Java, una variable queda asociada a un tipo de dato específico, lo que se mantiene desde que el programa inicia hasta que termina.

Si la variable cantidad se declara de tipo entero y luego el programa asigna a cantidad algo que no es un entero, el error se detectará antes de que el programa ejecute.

En contraste, Python es dinámicamente tipificado. Eso significa que una variable puede estar asociada al principio a un entero y más adelante a un número real.

Los lenguajes estáticamente tipificados son más verbosos (todo tiene que declararse) y menos flexibles, pero permiten que una gran cantidad de errores sean detectados mucho antes de que el programa siquiera corra.

Es un lenguaje interpretado

Al programar en Python es posible correr el código recién escrito en forma inmediata, sin necesidad de pasar por un proceso de compilación previo.

Esto hace que quienes están dando los primeros pasos puedan tener un ciclo de prueba y error muy rápido.

Por otra parte, permite construir y probar una solución en forma rápida, lo que facilita el desarrollo con base en prototipos. Por supuesto, el costo que se paga es en desempeño, ya que los lenguajes interpretados suelen ser más lentos que los compilados al correr.

Se aprende más fácil

En muchas universidades, durante varios años, se utilizó Java como el lenguaje para enseñar a programar a los alumnos. Muchas de ellas se han cambiado a Python por las enormes ventajas que tiene en este ámbito.

En efecto, un estudio reciente revela que en 8 de los 10 mejores programas de computer science en Estados Unidos se utiliza Python.

Aprender a construir una solución algorítmica de un problema no es fácil, por eso es deseable que, en ese proceso, el lenguaje que se utilice no se interponga en el camino agregando más dificultades.

Por ejemplo, para escribir en Java el clásico programa Hello World con que comienzan muchos textos, hay que explicar primero, entre otras cosas, qué es una clase.

El ejemplo siguiente muestra un programa muy simple, escrito en Java, que imprime una lista de palabras desde un arreglo.

java

Lo mismo escrito ahora en Python muestra la diferencia en forma dramática:

Python

Puede verse la complejidad extra introducida por los tipos de dato estáticamente tipificados en Java.

Por otro lado, si el aprendiz quiere ver si su código está correcto, el programa Java debe ser primeramente compilado para en una segunda etapa ser ejecutado. En cambio, el código Python puede ejecutarse inmediatamente cuando se termina de escribir la última línea.

¿Qué se puede programar en Python? Es mejor para construir prototipos rápidos y programas pequeños

La simplicidad del código Python comparado con Java y el hecho de ser un lenguaje compilado no solo beneficia a quienes quieren aprender a programar.

También tiene grandes ventajas si lo que estamos haciendo es un prototipo o una prueba de concepto, que debe ser mostrado rápidamente a alguien.

O si se trata de un pequeño programa para hacer una tarea específica con un archivo de texto donde no tiene ninguna importancia que corra en un segundo o en dos.

Python es lento

Sí, Python es lento comparado con Java. ¿Cómo entonces se explica que se utilice en aplicaciones de inteligencia artificial donde los algoritmos son extremadamente exigentes en capacidad de procesamiento?

La respuesta está en las librerías de Python (NumPy, TensorFlow, PyTorch, etc.). Ellas han sido escritas mayormente en lenguajes que generan código muy eficiente (C, C++). Y, es este código el que realiza la mayor parte del trabajo.

Dada la enorme comunidad de desarrolladores Python cada día aparecen nuevas librerías que encapsulan trozos de funcionalidad, no solo en el área de ciencia de datos, sino que para las más diversas situaciones. El resultado es que los programas escritos en lenguaje Python desde el punto de vista de quien usa la aplicación se sienten muy rápidos.

En síntesis, Python…

En definitiva, hay muy buenas razones para el aumento explosivo en el uso de este lenguaje de programación. Entonces, ¿por qué aprender Python?

Porque se puede aprender rápido, escribir programas pequeños o prototipos en menos tiempo y experimentar con mayor facilidad. El lenguaje mismo no produce un código muy rápido pero la gran disponibilidad de librería poderosas y eficientes permiten subsanar en buena medida esta desventaja. Sin duda un mediocampista multifuncional que todo equipo de fútbol desearía.

Referencia:
(1) Fourth annual Developer Ecosystem Survey conducted by JetBrains. Feedback from 19,696 developers whom we surveyed in the beginning of 2020.

 

Actualízate con el Diplomado en Python y ciencia de datos (online) de Clase Ejecutiva UC. 





Artículos más recientes del autor