¿Por qué Usar Python?

Debido a la multiplicidad de lenguajes de programación existentes, la pregunta que da título a esta entrada es siempre una cuestión recurrente entre los profesionales y aficionados de la programación. Esto tiene mucha lógica. Digamos que para aprender un lenguaje de programación se necesita invertir una cantidad importante de tiempo (hay quienes dicen que sobre los 10 años, otros pretende enseñarlo en 24 horas), que como todos sabemos es un recurso bien escaso por estos días. Por esta razón, es lógico que nos preocupemos por saber si esta valiosa inversión resultará provechosa y útil para nuestra vida profesional y nuestro desarrollo futuro. En esta entrada trataremos de resumir algunas características generales de Python como lenguaje de programación que podrán servirnos para hacernos una idea de para qué nos puede servir Python y qué ventajas nos proporciona respecto a otros lenguajes disponibles hoy en día.

Calidad del Software

Para muchos, el enfoque de Python en la legibilidad, la coherencia y la calidad del software en general lo diferencian de otras herramientas en el mundo de los guiones o scripts. El código Python está diseñado para ser legible, y además, reutilizable y mantenible — mucho más que los lenguajes script tradicionales. La uniformidad del código Python lo hace fácil de comprender, incluso si no lo has escrito tú. Además, Python tiene un profundo soporte para los más avanzados mecanismos de reusabilidad, tales como la programación orientada a objetos (OOP por sus sigla en ingés).

Productividad de los Desarrolladores

Python acelera la productividad de los desarrolladores muchas veces por encima de los lenguajes compilados o estáticamente tipados, tales como C, C++, y Java. El código Python es típicamente de un tercio a un quinto del código equivalente en C++ o Java. Eso significa que hay menos que teclear, menos que depurar, menos que leer y revisar, y menos que mantener. Los programas Python también corren inmediatamente, sin el lento paso de compilación y enlace requerido por algunas otras herramientas, lo que incrementa la velocidad y productividad de los programadores.

Código Portable

La mayoría de los programas escritos en Python corren sin cambio alguno en las plataformas más importantes que existen en la actualidad. Portar el código Python entre GNU/Linux y Windows, por ejemplo, es usualmente solo cuestión de copiar el script de una máquina a la otra. Más aún, Python ofrece múltiples opciones para crear interfaces gráficas de usuario, programas de acceso a bases de datos, sistemas web, y mucho más, la gran mayoría de ellos portables entre plataformas. Incluso las interfaces del sistema operativo, incluyendo lanzamiento de programas y procesamiento de directorios, son tan portables en Python como podían ser. En la actualidad Python está disponible para plataformas Windows, GNU/Linux, Mac OSX, Android y otras.

Librería Estándar (Baterías Incluidas)

Python viene con una gran colección de funcionalidades pre-desarrolladas y portables, conocida como la librería estándar (standard library). Esta librería soporta una serie de tareas de programación a nivel de aplicaciones, desde procesamiento de texto, hasta aplicaciones para redes. Además, Python puede ser extendido con librerías desarrolladas en casa o con una vasta colección de librerías de terceros que en muchos casos son Open Sourse o Software Libre. La librerías de terceros para Python ofrecen herramientas para la construcción de sitios web, la programación numérica y el procesamiento estadístico, el acceso a puertos serie, el desarrollo de video juegos, el diseño de interfaces gráficas de usuario (GUI por sus siglas en Inglés), el acceso a bases de datos, y mucho más. La extensión NumPy, por ejemplo, ha sido descrita como un equivalente libre y más poderoso que el sistema de programación numérica Matlab. El framework Django para desarrollo Web, es uno de los más completos y empleados a nivel mundial.

Integración de Componentes

Los scripts de Python se pueden comunicar fácilmente con otras partes de una aplicación, usando una variedad de mecanismos de integración. Tal integración permite que Python pueda ser empleado como herramienta de personalización y extensión. Hoy, el código Python puede invocar librerías C y C++, puede ser llamado desde programas C y C++, se puede integrar con código Java y con componentes .NET, puede comunicarse con frameworks como COM, puede servir de interfaz con dispositivos mediante puertos serie, y puede interactuar en red con interfaces como SOAP, XML-RPC, y CORBA.

Disfrute

Debido a la facilidad de uso de Python y el conjunto de herramienta que incluye, puede hacer el acto de programar, más placentero que rutinario. Aunque este puede ser un beneficio intangible y hasta cuestionable, su efecto en la motivación y productividad de los desarrolladores suele ser de un impacto importante.

Fácil de Aprender

Python tiene una sintaxis clara y limpia, muy cercana al inglés natural, lo que lo convierte en un lenguaje muy fácil de aprender y de recordar. Prescinde del empleo de caracteres especiales, pues el caracter más “extraño”, por decirlo de alguna manera, que se emplea en Python es el caracter “@” para los decoradores (decorators). La legibilidad del código es algo fundamental en la filosofía detrás de Python, y esto también ayuda y agiliza el aprendizaje.

Fácil de Enseñar

Puede parecer que este punto es redundante si ya analizamos el anterior, pero en realidad no es así. El hecho de que Python sea fácil de aprender en términos de sintaxis y estructura gramatical, hace que los estudiantes o los recién llegados al mundo de la programación, puedan centrar su atención en aprender conceptos fundamentales; como pueden ser la programación orientada a objetos o los patrones de diseño; en lugar de pasar horas aprendiendo una sintaxis enrevesada y compleja, con un montón de caracteres especiales con diferentes significados según el contexto. Podríamos decir que esto acelera el proceso de aprendizaje. Esto podría expresarse además, diciendo que la curva de aprendizaje de la programación como disciplina, se hace menos pronunciada si empleamos a Python como lenguaje base.

En fin, luego pueden aparecer otras mucha cosas, pero para esta entrada creo que se suficiente con lo dicho.

Lecturas Recomendadas

Para profundizar en los elementos acá descritos, recomendamos la lectura del Capítulo I “A Python Q&A Session” del libro “Learning Python” de Mark Lutz, publicado por la Editorial O’Reilly.

Bien, esto es todo por ahora, si este artículo te resultó interesante y/o útil, compártelo para que otros también puedan acceder a él. Déjanos tus comentarios y podremos mejorar nuestros contenidos.

Gracias de antemano,

lpozo