PYTHON - Simplicidad, flexibilidad y elegancia.
- Ingenian Bloggers
- 2 ago 2018
- 3 min de lectura
Actualizado: 23 ago 2018
Escrito por: Marlon Acosta
Ingeniero desarrollador.
Python nace a finales de los 80's, como un proyecto en el Centro para las Matemáticas y la Informática, CWI por sus siglas en Inglés.

En cuanto al nombre de este lenguaje de programación, se rumora que su creador, Guido van Rossum, lo tomó del sexteto humorÃstico británico Monty Python del cual era fan, al igual que el término Spam para referirse al correo no deseado.
El Autor y su filosofÃa:
Antes de adentrarse en las caracterÃsticas, propiamente dichas del lenguaje, resulta valioso estudiar su "filosofÃa", o mejor dicho, en términos prácticos, revisar la versión veinte de "The Python's Enhancement Proposals" o Propuestas de mejora de Python (PEP): The Zen of Python, en donde se nombrar algunos aforismos que nos
acercan a ella; solo voy a nombrar unos pocos:
-ExplÃcito es mejor que implÃcito. -La legibilidad cuenta. -Simple es mejor que complejo. -Los casos especiales, no son tan especiales como para romper las reglas. -Plano es mejor que anidado
Está última, en terminos prácticos es pasar de tener operaciones con loops —donde en muchos casos, nos tardamos un rato en descubrir que hace el código — a declarar expresiones de una sola lÃnea (y sÃ, esto es programación funcional) con las funciones propias de las listas y los arrays (reduce, map, forEach, etc).
En cuanto a "ExplÃcito es mejor que implÃcito", lo considero un atributo clave ya que desde mi perspectiva contribuye a la mantenibilidad del código.
¿Qué es Python?
Bueno, ahora sÃ, ¿Qué caracterÃsticas son las que considero las más llamativas de Python?
Por definición, Python es un lenguaje interpretado, orientado a objetos y de alto nivel.
Ya, pero eso es lo clásico, no?. Seguro, continua:
Viene con estructuras de datos integradas de alto nivel (listas, tuplas, diccionarios, conjuntos, entre otros.), tipado dinámico y enlace dinámico, además soporte para módulos y paquetes que son manejados por pip, que vendrÃa siendo su package manager o administrador de dependencias.
Ahora, en mi experiencia, he pasado por C++ más que por Java y considero que la sintaxis es mucho más legible y la curva de aprendizaje mucho más corta, lo que reduce el costo de mantenimiento de un software, no?
Ahora claro, en cuanto a performance, hemos visto que Python es un lenguaje interpretado, lo que lo hace, de cierta forma, un poco mas lento en ejecución que otros lenguajes, como digamos Java o NodeJS, pero también es cierto que los programas como Java, se demoran mucho, pero mucho más tiempo en ser escritos, y ni hablar después del mantenimiento del código y los despliegues; para poner un ejemplo, imagina el tiempo que gasta un desarrollador, pensando y definiendo los tipos de datos para estructuras y variables en Java, en Python por otro lado, puede utilizar las listas y los diccionarios, estructuras polimórficas muy poderosas.
Solo de demostración, el clásico Hola Mundo:

¿Cuáles son las principales aplicaciones de Python?
Cómo Python es un lenguaje que soporte varios paradigmas, tiene una cantidad enorme de paquetes y módulos y es de muy sencilla escritura se ha encontrado un montón de usos, en distintas y a veces no tan distintas áreas:
1. Desarrollo web
2. Backend para Web Services y APIs Rest
3. Integración con Web services SOAP
4. Machine learning
5. Inteligencia Artificial
6. Simulación
7. Infraestructura y DevOps
8. Unit Testing
En próximas partes de esta serie, pienso profundizar un poco más en sus aplicaciones, haciendo la salvedad que la lista es realmente extensa, pero mientras puedes revisar con más detalle todas sus aplicaciones desde la propia página de Python.org.
¡Ah! No hay que olvidar también que hay empresas de gran calibre que confÃan en Python, empresas como: Youtube (Google), Quora, Yahoo, NASA, IBM, Mozilla, Instagram y Dropbox quien de hecho, contrató a Guido van Rossum en 2012 dándole una cálida bienvenida.
Finalizando por ahora...
En esta breve introducción al mundo de Python, quiero compartir una imagen que resume mi opinión en una caricatura, estoy ansioso por contar más sobre este gran lenguaje y comunidad de desarrollo.

