Python es uno de los lenguajes más usados del mundo, es el preferido para aprender a programar y es el favorito para utilizar en la inteligencia artificial, ciencia de datos y seguridad informática (sin contar sus otras áreas de aplicación). Y, a pesar de ser un lenguaje que no tiene relevancia en desarrollo móvil ni navegadores, ni siquiera con Web Assembly, Python es uno de los lenguajes que dominan el desarrollo de software. Pero, ¿por qué?
Historia de Python
Python es creado por Guido Van Rossum en la navidad de 1989. Él tenía una semana de descanso de su trabajo en el Centro de Matemáticas y Ciencias de la Computación (o CWI) en Amsterdam, Holanda y estaba buscando un proyecto para distraerse mientras estaba encerrado en casa.
En el CWI trabajaba con el lenguaje ABC en un pequeño sistema operativo distribuido llamado Amoeba. A él le gustaba programar en ABC pero tenía algunos problemas que lo frustraban, así que pensó en diseñar un sencillo lenguaje de scripting para resolver esos problemas.
¿Qué es un lenguaje de scripting?
Los lenguajes de scripting se usan para pequeñas tareas, muy específicas, para cosas muy puntuales. De allí salió JavaScript, que se pensó como un lenguaje de scripting para añadirle cosas pequeñitas a las páginas web. y luego se transformó en un lenguaje de propósito general. Por ahí también va el camino de Python.
Guido Van Rossum decidió que este nuevo lenguaje tendría una sintaxis sencilla, su prioridad sería la legibilidad del código y le ayudaría a automatizar tareas aburridas de su trabajo. Entonces creó una máquina virtual, un parser y un runtime. Además, pensando en la sencillez, decidió que no tendría llaves, ni puntos ni comas, entre otras cosas.
Por otro lado, aunque el logo de Python son dos serpientes, su nombre no viene de las serpientes sino de una comedia que a él lo divertía: Monty Python.
En febrero de 1991, publicó la primera versión de Python, la 0.9, en alt.source, un foro de Usenet. Esta primera versión incluía clases, herencia, funciones y manejo de excepciones.
Python 1
La versión 1.0 de Python llegó en enero de 1994, incluía lambda, map, filter y reduce. También soporte para números complejos y argumentos con keywords. A partir de este momento, el lenguaje empezó a ganar popularidad. Una de las razones por las qué aumentó su popularidad era porque tenía la ventaja de ejecutarse directamente sobre el sistema.
Fue apoyado por el NIST (The National Institute of Standards and Technology) de Estados Unidos y luego el CNRI (Corporation for National Research Initiatives), que lo contrató y en donde pudo hacer un equipo de entusiastas de Python. Poco tiempo después, crearon el primer sitio web y la lista de correo de Python.
Python 2
La versión 2.0 de Python llegó en octubre del 2000 e incluía soporte para Unicode, compresión de listas, un detector de basura detector de ciclos, unificación de tipos de clases y datos.
Python 3
La versión 3 llegó en diciembre de 2008, su desarrollo comenzó en el 2000 y se eliminaron cosas innecesarias acumuladas en 20 años de existencia de Python. Sin embargo, Python 3 era incompatible con versiones anteriores, básicamente por el manejo de Unicode (tipos de datos). Por lo tanto, al ser incompatible, su adopción demoró demasiado. La migración total de 2.x a 3 terminó en 2020, con lo cual la versión 2 pasó a retiro.
En 2020 llega la versión 3.9. El crecimiento de Python comenzó en 2010 por campos como Big Data e inteligencia artificial.
Dictador vitalicio benevolente
En 1995, Guido Van Rossum fue nombrado Dictador Vitalicio Benevolente, un cargo honorífico que reciben algunas personalidades del mundo del Open Source como Linus Torvalds, en Linux o Mark Shuttleworth, en Ubuntu. Este cargo implica que las últimas decisiones sobre la dirección del proyecto las toma esa persona.
Sin embargo, Guido Van Rossum dimitió del cargo en el año 2018 porque necesitaba un descanso. En una entrevista mencionó que estaba cansado de los ataques en redes sociales, especialmente en Twitter.
Solo un año después de anunciar su retiro, Microsoft lo recontrató para trabajar como ingeniero distinguido en proyectos con Python. Actualmente trabaja en Microsoft intentando acelerar el rendimiento de Python (de eso hablaremos más adelante).
Características de Python
Python es un lenguaje de programación de propósito general, multiparadigma, dinámicamente tipado e interpretado. Hasta aquí la definición de Wikipedia y del 99% de los videos de YouTube. Pero estás en EDteam, y en español nadie explica mejor. Así que vamos un paso más allá.
Cuando Guido Van Rossum creó Python, su intención era automatizar tareas tediosas y aburridas de realizar con C. Así que Python fue pensado como un lenguaje de scripting. Es decir, no de propósito general sino para realizar tareas específicas. Por lo que Guido escribió un parser, una máquina virtual y un runtime en C para ejecutar Python.
Espera, ¿máquina virtual?, ¿runtime? Eso probablemente te trae a la mente a lenguajes como Java o C#. Y sí, Python funciona como C# o Java: es compilado a bytecode y este bytecode es interpretado por la máquina virtual en tiempo de ejecución. La diferencia es que el paso de compilación es transparente para el programador. Todo ocurre tras banbalinas y a una velocidad que lo sientes como interpretado y luego de la ejecución, ese bytecode se borra. Por lo tanto, no quedan rastros. Esto a la vez es una ventaja y una desventaja de Python.
Implementaciones
Es una ventaja porque puede portarse a cualquier entorno escribiendo una implementación (un runtime) y permite a Python usarse como un lenguaje de pegamento entre sistemas. Implementaciones hay muchas. Por ejemplo:
- CPython. Es la oficial y la que te descargas desde python.org. El nombre es un juego de palabras entre Core Python y el lenguaje C con el que está escrito.
- Jython. Es una implementación en Java, con lo cual Python puede ejecutarse en la Java Virtual Machine (JVM).
- Python.NET. Usa CPython y pone a disposición de Python todos los paquetes de .NET con lo cual puede escribirse una App completa con Python en .NET
- Iron Python. Es una implementación a de Pytho para la plataforma de .NET.
- PyPy. Es una implementación escrita en Python que incluye un compilador JIT y permite experimentar con el lenguaje, puesto que el intérprete está escrito en Python.
Y esta es una de las razones por las cuáles Python es tan usado, porque sus paquetes, sus librerías que vienen en la instalación, están escritas algunas con C y otras con Python. En general, Python es usado como un lenguaje de pegamento, un lenguaje de puente entre sistemas.
Existen muchos más proyectos para extender Python como Anaconda para ciencia de datos o PyScript para usar Python en el navegador.
Rendimiento
La parte no cool de Python es su rendimiento. La forma en que está diseñado hace que sea mucho más lento que lenguajes como C++ y aunque la diferencia es de milisegundos, y prácticamente no se nota en el uso común, cuando se habla de análisis de grandes volúmenes de datos (que es el campo en el que más se usa Python) esa diferencia se siente. Además por su consumo de hardware (GPU y batería), Python no ha logrado entrar con fuerza en el desarrollo móvil.
Es por eso que Microsoft ha invertido más de 150 mil dólares para un proyecto llamado Faster CPython, dirigido por Guido Van Rossum, que busca acelerar el rendimiento de Python. Y por el momento, han logrado hacerlo hasta 60% más rápido (hasta el momento, me refiero al primero de noviembre de 2022).
Paquetes de Python
Una característica importante de Python es que su instalación incluye la librería standard, que contiene una extensa cantidad de módulos que extienden el lenguaje (escritas en C y Python). Basta con importarlos con el comando import y empezar a usarlos.
Python, además, tiene un índice o repositorio público de paquetes llamado Pypi, desde donde puedes instalar paquetes o publicar los tuyos. La cantidad de paquetes o librerías para Python son una de las razones de su enorme crecimiento y que sea el lenguaje más usado del mundo.
Campos de aplicación de Python
Python es uno de los lenguajes más versátiles en el mundo por la cantidad de campos en los que puede aplicarse. En gran parte, esto se debe a su naturaleza. Al ser un lenguaje diseñado para automatizar tareas, es excelente para procesamiento de datos (cada vez más personas prefieren Python sobre Excel). Y puesto que se puede implementar en diferentes entornos, suele usarse como lenguaje de pegamento (o puente) entre sistemas.
Python puede usarse en el desarrollo de aplicaciones de escritorio con frameworks como Kivy o PyQT. Otro campo donde Python se usa mucho, es el desarrollo web, tanto del backend con las vistas con frameworks como Django o Flask, así como con la Creación y consumo de APIs. Además, ¿Sabías que los algoritmos de búsqueda de Google están escritos en Python? ¿O que la mayoría de la tecnología de Dropbox corre sobre Python y que es una de las principales tecnologías en la nube de Microsoft? De hecho, Guido Van Rossum, el creador de Python, ha trabajado en estas dos compañías para ayudarlos a mejorar sus productos.
Y gracias a su capacidad para automatizar tareas, Python es el lenguaje preferido por los especialistas en seguridad informática que pueden automatizar pruebas para ir probando si un sistema es vulnerable, por dónde entrar al sistema, dónde se les olvidó configurar algo, etc. A todas estas practicas se les llama Pentesting y lo puedes estudiar en EDteam.
De la misma manera, se puede utilizar para automatizar pruebas de QA o para pruebas automatizadas de DevOps. Incluso en el análisis de datos, muchos profesionales están remplazando a Excel por Python. Por otro lado, Python también puede usarse en el Internet de las cosas para programar controladores o servidores.
Pero los campos donde más brilla Python son la educación, la ciencia de datos y la inteligencia artificial. En la educación, Python es el lenguaje preferido para aprender a programar (en algunas instituciones lo prefieren a Scratch) porque es sencillo de aprender y abstrae muchos conceptos complejos de la programación. En la ciencia de datos, Python tiene librerías conocidas como SciPy, NumPy o Pandas y en EDteam puedes profundizar en la ciencia de datos con cursos como Preparación de datos, Análisis y presentación de datos y Analítica predictiva. Todos estos cursos utilizan Python.
En Machine Learning e inteligencia Artificial, la librería más usada es Tensorflow, desarrollada por Google y que lo utilizan todos sus productos de Inteligencia Artificial. Incluso tiene hardware específico para su procesamiento. Otros paquetes son PyTorch, un framework Open Source para Machine Learning y Keras, una API para el desarrollo de Deep Learning y es usado en organizaciones como la Nasa y el CERN.
Y si quieres empezar en el mundo de la inteligencia artificial y Deep Learning, tienes a la librería Scikit-Learn y nuestros cursos de Introducción a la Inteligencia Artificial y Fundamentos de Machine Learning. Así que ya sabes dónde comenzar a estudiar.
Gracias a todos estos campos de aplicación, además de la educación y la gran cantidad de librerías y frameworks, Python lleva varios años siendo el lenguaje más utilizado en el mundo y el lenguaje que tienes que aprender para comenzar en la programación.
¿Por qué aprender Python?
Con todo lo que hemos visto, debes tener claro que Python es el lenguaje ideal para comenzar en la programación. Pero si aún te quedan dudas, te doy algunas razones adicionales:
- Sintaxis sencilla. Python es de lejos el lenguaje de programación más fácil de aprender, frente a lenguajes que suelen enseñarse para empezar, como C o C++. No tiene tantos símbolos ni cosas raras como C o C++, Python abstrae muchas cosas para que sea fácil comenzar. Además, leer Python se parece mucho a leer el inglés.
- Campos de aplicación. Como ya vimos, tu conocimiento en Python puede ir desde la web al escritorio, ciencia de datos, inteligencia artificial, seguridad informática, incluso videojuegos. Quizás el único campo en el que Python no ha podido brillar es el desarrollo móvil. Pero en todos los demás campos, es una excelente opción.
- Oportunidades laborales. Si hay muchos campos de aplicación y si Python es el lenguaje más usado en el mundo, entonces no te va a faltar trabajo.
- Lo puedes aprenderlo en EDteam. Nuestro curso de Python es uno de los más vistos en la plataforma. Miles de estudiantes lo han tomado y han dominado Python con nosotros porque en español nadie explica mejor que EDteam.
Y si no sabías qué es Python, hoy lo aprendiste en EDteam.