File:Python logo and wordmark.svg

Introducción

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

Cuenta con estructuras de datos eficientes y de alto nivel y un enfoque simple pero efectivo a la programación orientada a objetos. La elegante sintaxis de Python y su tipado dinámico, junto con su naturaleza interpretada, hacen de éste un lenguaje ideal para scripting y desarrollo rápido de aplicaciones en diversas áreas y sobre la mayoría de las plataformas. El intérprete de Python y la extensa biblioteca estándar están a libre disposición en forma binaria y de código fuente para las principales plataformas desde el sitio web de Python, http://www.python.org/, y puede distribuirse libremente. El mismo sitio contiene también distribuciones y enlaces de muchos módulos libres de Python de terceros, programas y herramientas, y documentación adicional.

Python surgió como un hobby para Guido y su nombre, Python, fue tomado del grupo cómico británico Monty Python, del que Guido era un gran fan. Desde sus comienzos, Python nació como un proyecto de software libre y posiblemente deba parte de su éxito a la decisión de hacerlo código abierto.

Guido Van Rossum, desarrollador del lenguaje Python

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 diferenciales

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetosprogramación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License, que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.

Python está licenciado bajo licencia PSFL, derivada de BSD y compatible con GPL. Muchas empresas y organizaciones, como Google, Microsoft o Red Hat, hacen un gran uso de Python y tienen influencia en su evolución, pero ninguna ejerce un control sobre el mismo. Esto diferencia a Python de otros lenguajes.

Python tiene una serie de características que lo hacen muy particular y que, sin duda, le aportan muchas ventajas y están en la raíz de su uso tan extendido.

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.

Una de las características más reseñables de 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 tipado dinámico, aunque opcionalmente desde la versión 3.5 podemos hacer uso de tipado estático.

Python es cross plataforma, es decir, podemos ejecutarlo en diferentes sistemas operativos como Windows o Linux simplemente usando el intérprete correspondiente.

Algunos le achacan a Python que es más lento en tiempo de ejecución que otros lenguajes compilados como Java o C/C++. Y es cierto, al tratarse de un lenguaje interpretado, Python es más lento.

Sin embargo, esto no es un gran problema, las diferencias en velocidad son pequeñas y hoy en día el cuello de botella en los proyectos de desarrollo de software no está en la CPU. Gracias a avances como la computación en la nube, hoy en día disponemos de gran capacidad de cómputo a un coste muy asequible. El desafío está en acortar los tiempos de desarrollo, mejorando la mantenibilidad y calidad del código. Python pone foco en esto, facilitando la vida a los desarrolladores.

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 AnsibleSalt 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.

Django logo.svg

Sin embargo, en el ecosistema de desarrollo web existen muchas alternativas y frameworks muy maduros y asentados como Symfony para PHPSpring para JavaGrails para Groovy o Rails paraRuby. Todos estos frameworks están continuamente tomando ideas entre ellos, inmersos en ofrecer las mejores alternativas para los desarrolladores.

Flask logo.svg

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 ArtificialMachine Learning, Deep Learning y el surgimiento de la ciencia de datos o data science como un nuevo á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.

Logo

Podemos hablar de tecnología para Big Data como PySpark, de herramientas para Data Science como PandasNumPyMatplotlib 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 TensorflowMXNet o scikit-learn.

Logo