¿Es Python el lenguaje del futuro?
11/11/2020 · Python, Programación, Lenguajes · Escrito por Omar Hernández
El lenguaje Python surgió a principios de los 90 e inicialmente fue desarrollado por Guido Van Rossum, un ingeniero holandés que trabajaba en ese momento en el CWI de Amsterdam, el Centro de Investigación de Ciencias de la Computación holandés.
Actualmente, la evolución del lenguaje Python es gestionada por la Python Software Foundation, una sociedad sin ánimo de lucro dedicada a dar difusión al lenguaje y apoyar su evolución. Guido sigue totalmente involucrado en el desarrollo y en la toma de decisiones de diseño.
Características:
Python es un lenguaje multiparadigma, esto significa que combina propiedades de diferentes paradigmas de programación. Principalmente es un lenguaje orientado a objetos, todo en Python es un objeto, pero también incorpora aspectos de la programación imperativa, funcional, procedural y reflexiva.
Python es que es un lenguaje interpretado, esto significa que no se compila a diferencia de otros lenguajes como Java o C/C++, sino que es interpretado en tiempo de ejecución. Además, es de tipo dinámico.
Python es cross plataforma, es decir, podemos ejecutarlo en diferentes sistemas operativos como Windows o Linux simplemente usando el intérprete correspondiente.
Los principios de diseño del lenguaje están guiados por una serie de aforismos recogidos en el “Zen de Python”.
Python como lenguaje de scripting
Tradicionalmente Python ha tenido un uso muy extendido como herramienta de scripting, sustituyendo a scripts escritos en bash, otros lenguajes de script más limitados o herramientas como AWK o sed. Por ello, Python siempre ha sido un buen compañero de los administradores de sistemas y los equipos de operaciones.
Hoy en día, muchas de las herramientas punteras para gestión de despliegues e infraestructura usan o se basan en Python. Algunas de las más destacadas son Ansible, Salt o Fabric.
Otra área en la que Python es pionero es en el mundo del scraping y el crawling, donde podemos extraer información de páginas web gracias a técnicas de “scraping”, herramientas de Python como Scrapy son muy usadas en este contexto.
Python en el desarrollo web
Otro de los campos en los que Python ha brillado en los últimos años es en el desarrollo de aplicaciones web, principalmente gracias a frameworks de desarrollo web muy potentes como Django, un framework completo o Flask, un microframework.
Sin embargo, en el ecosistema de desarrollo web existen muchas alternativas y frameworks muy maduros y asentados como Symfony para PHP, Spring para Java, Grails para Groovy o Rails para Ruby. Todos estos frameworks están continuamente tomando ideas entre ellos, inmersos en ofrecer las mejores alternativas para los desarrolladores.
En este caso la ventaja que aporta Django, el principal framework para desarrollo web en Python, es la de ofrecer un marco de trabajo completo y de calidad para desarrollar aplicaciones web muy rápido. Como su leitmotiv dice es: “el framework para perfeccionistas con fechas de entrega”.
Big Data, Data Science, AI: el boom de Python
Sin embargo, al margen de todas las bondades que hemos comentado del lenguaje, en los últimos años ha ocurrido algo que ha revolucionado y extendido radicalmente el uso de Python.
La generalización del Big Data en los últimos años, seguida de la explosión de la Inteligencia Artificial, Machine Learning, Deep Learning y el surgimiento de la ciencia de datos o data science como una nueva área de trabajo con especialistas propios, ha revolucionado el panorama.
Y es que muchas de las nuevas herramientas que han surgido, y que son explotadas por los ingenieros de datos y los científicos de datos, han sido desarrolladas en Python o nos ofrecen Python como la forma predilecta de interactuar con ellas.
Podemos hablar de tecnología para Big Data como PySpark, de herramientas para Data Science como Pandas, NumPy, Matplotlib o Jupyter. De herramientas del procesamiento del lenguaje natural como NLTK, y por último el área de machine learning que tanto interés está despertando con herramientas como Tensorflow, MXNet o scikit-learn.


