Python, uno de los lenguajes de programación más populares de los últimos tiempos

Los 90 están de vuelta. Y no solo en los armarios. Python está ganando popularidad: el lenguaje de programación que floreció por primera vez en la década de 1990, está regresando con fuerza a medida que surgen nuevos usos, y tiene una historia fascinante en sus orígenes.

En cierto modo, el surgimiento del lenguaje de programación Python es tan surrealista y sorprendente como las parodias de la compañía de comedia británica Monty Python, que le dio su nombre. Hoy en día, Python es utilizado por desarrolladores aficionados y profesionales por igual, con una popularidad incansable entre los desarrolladores web, administradores web y científicos de datos.

A principios de 2021, la primera imagen de un agujero negro se consiguió usando Python. Además de proporcionar el código detrás de la inteligencia artificial de muchas App. La funcionalidad de transmisión de Netflix y partes de Instagram están escritas en Python. El lenguaje se usa en la exploración espacial de la NASA. Y los aspirantes a científicos de datos suelen construir sus primeras aplicaciones de aprendizaje automático con Python.

Los inicios

El holandés y programador Guido van Rossum tuvo la idea de Python a fines de la década de 1980. En ese momento, Van Rossum trabajaba en el CWI, el instituto nacional de investigación de matemáticas e informática de los Países Bajos en Amsterdam. Trabajó con Amoeba, un sistema operativo distribuido accesible solo a través del Shell UNIX o a través de C. Para C no había biblioteca con fragmentos de código reutilizables. Los desarrolladores que trabajaban con C tenían que reinventar la rueda con cada nuevo proyecto, y trabajar con él era un campo minado de fuentes de error. Había un conjunto de comandos para tareas comunes para el Shell, pero era demasiado lento: no podía procesar una lógica más compleja.

Frustrado por las insuficiencias de los lenguajes de programación existentes, decidió crear uno nuevo. Van Rossum ya había trabajado durante tres años dentro de su equipo en el CWI en la concepción del lenguaje de programación ABC. Entonces tuvo una idea de qué bloques de construcción sintácticos necesitaría el nuevo lenguaje, y también qué recursos necesitaría para construir un intérprete que ejecutaría las instrucciones de un programador. Para la concepción de su lenguaje, planeó tomar prestadas funcionalidades de ABC.

“Simplemente disfruto programando”

Van Rossum diseñó Python para facilitar su trabajo diario, pero también porque simplemente disfrutó del proyecto. Dijo sobre sí mismo: “simplemente disfruto programando”. A finales de la década de 1980, estaba en buena compañía con esta mentalidad: Larry Wall inventó Perl porque se enfrentaba a un problema que podía resolver con los medios a su disposición (awk y Shell) no pudo resolver. En busca de un lenguaje que pudiera reutilizarse en todas las herramientas, John Ousterhout diseño TCL (abreviatura de Tool Command Language).

Apéndice

A principios de los años 1980, Ousterhout y sus alumnos de UC Berkeley estaban construyendo herramientas de diseño para circuitos integrados, y lo que le molestaba era que cada una de estas herramientas necesitaba su propio lenguaje de comandos. Las interfaces gráficas de usuario no eran muy comunes en ese momento, las herramientas normalmente se operaban a través de la línea de comandos y se definían comandos separados para cada herramienta. El interés principal estaba en las herramientas, no en los lenguajes de comandos, por lo que nadie puso mucho esfuerzo en los lenguajes. En 1987, a Ousterhout se le ocurrió la idea de diseñar un lenguaje de comandos integrado que sirviera como biblioteca, con fragmentos de código, que pudiera reutilizarse para muchas aplicaciones diferentes y que pudiera ampliarse poco a poco con el código de esas aplicaciones.

El primer prototipo

El primer prototipo estuvo listo en solo tres meses. El mismo van Rossum dice que no tenía una vida social particularmente ocupada en ese momento, y dedicó mucho tiempo al proyecto. Aunque faltaban muchas características importantes en la versión actual, el prototipo todavía se reconocería como Python hoy. Los programas escritos en la primera versión probablemente todavía se ejecutarían hoy, dice van Rossum. Las funciones, la sangría, los diccionarios y las tuplas (colecciones ordenadas de valores) se definían de la misma manera que hoy. En ese momento ya había un aviso interactivo, con la ayuda de la cual los cálculos se pueden realizar directamente. Sus colegas inmediatamente hicieron uso del prototipo en 1989, pero van Rossum todavía tenía pocas esperanzas de usarlo para llegar a una base de usuarios más grande. A mediados de los 80, ya había tratado de ayudar a ABC a ganar notoriedad. En el proceso, tuvo que aprender por las malas lo difícil que era difundir un nuevo lenguaje de programación en una época anterior a Internet.

Factor de éxito Internet

Con Interent, Python se volvió mucho más fácil de difundir. Van Rossum lanzó Python en 1991 a través del grupo de noticias alt.sources (un grupo de noticias que servía como repositorio para compartir código fuente útil de todo tipo) bajo una especie de licencia de código abierto; el término simplemente no existía en ese momento. En el momento de este lanzamiento inicial, Python ya venía con clases, listas y strings, así como funciones lambda, map, reduce y filter.

Desilusionado con el fracaso de ABC seis años antes, van Rossum dio poco crédito a la creciente base de usuarios de principios de los 90. Fue solo después de un tiempo que se dio cuenta de que su proyecto realmente tenía potencial. En su opinión, el éxito del lenguaje de programación se remonta a las mismas razones por las que lo creó: Python fue el primer lenguaje de programación que combinó usabilidad y funcionalidad a un alto nivel sin sacrificar uno por el otro, como fue el caso de C o el Shell de Unix a la inversa.

Código limpio por defecto

Estaba Perl, y si Perl hubiera sido compatible con Amoeba, van Rossum dice que probablemente nunca hubiera visto la necesidad de Python. Perl ya casi no se usa, y ni siquiera se mencionó en el último Stack Overflow Report, mientras que Python se considera uno de los lenguajes de programación de más rápido crecimiento. Python proporciona una sintaxis sangrada limpia e inequívoca que agrupa el código en bloques. El efecto: por defecto, es comprensible en un alto grafo y fácil de leer. Esa era la intención. La idea era que la programación no se trata solo de dar instrucciones a un ordenador, sino también de comunicar ideas de un desarrollador a otro. Hasta ahora, muchos programadores han escrito sus programas con la mentalidad de que “lo principal es que de alguna manera hace lo que se supone que debe hacer”. Si su código era entendible y comprensible a menudo no tenía interés.

Python está ganando popularidad

A partir de la mitad de la década de 1990, Python encontró un uso generalizado para escribir guiones de grabación de audio y desarrollo web. La creación de páginas web dinámicas era el caso de uso favorito de van Rossum. El superpoder que probablemente justificó en última instancia la popularidad de Python fue que el lenguaje ofreció a los desarrolladores la oportunidad de escribir scripts muy potentes en un tiempo comparativamente corto por primera vez.

Además, Python era relativamente fácil de aprender y, por lo tanto, interesante para personas con una amplia gama de conocimientos técnicos y diferentes objetivos. Los administradores lo usaban con fines de automatización, los desarrolladores lo valoraban por la posibilidad de programación funcional y porque Python ofrece clases sin herencia. Cualquier que haya adquirido un conocimiento básico fundamental del lenguaje de programación Python ya podría hacer mucho con él en un tiempo relativamente corto.

En la segunda mitad de la década de 1990, la base de usuarios había crecido rápidamente en todo el mundo, y se formó el precursor de Python Software Foundation. Los talleres bienales de Python crecieron en tamaño, y eventualmente se convirtieron en el Pycon anual organizado por el PSF.

En 2000 se lanzó Python 2.0. El proyecto de código abierto fue impulsado por miembros del CWI en Amsterdam. En su segunda versión, Python admitió Unicode por primera vez. También fueron nuevos la comprensión de listas (o abstracción de listas), que es similar a la notación de conjuntos matemáticos y un módulo completo de recolección de basura. A principios de la década de 2000, tantas personas estaban involucradas en el lenguaje que su existencia continua ya no podía vincularse a su persona. Entre los primeros usuarios, la pregunta “¿qué pasaría si Guido es atropellado por un autobús?” era una especie de broma corriente. No obstante, van Rossum siguió desempeñando un papel clave en el desarrollo continuo de Python, lo que le valió el apodo de “Dictador benevolente de por vida”.

La versión 3.0, lanzada en 2008, trajo algunas modernizaciones significativas al lenguaje, aunque las versiones 2 y 3 son relativamente similares. Uno de los cambios más notables fue que la declaración de impresión se convirtió en una función print(). Desde entonces, el lenguaje de programación comúnmente asociado con la serpiente ha sufrido varias actualizaciones de versiones menores, y van Rossum renunció a su papel como figura principal detrás de Python recientemente. La razón: la versión 3.8 introdujo expresiones de asignación en octubre de 2019. Una parte significativa de la comunidad no estuvo de acuerdo de antemano. Los opositores a la innovación dieron a conocer su descontento online; como resultado, van Rossum renunció a su puesto. en la primavera de 2021, los principales desarrolladores de Python llamaron a elecciones para los miembros de un comité directivo recién creado, formado por Guido van Rossum, Barry Warsaw, Brett Cannon, Carol Willing y Nick Coghlan.

Una mirada al futuro

Si bien Python crece en popularidad todos los días, uno de los mayores desafíos para el lenguaje de secuencias de comandos es la falta de soporte para plataformas móviles. en la Python Language Summit de 2021, Keith Magee advirtió sobre las consecuencias para el lenguaje si las cosas siguen así. La cobertura de mercado de los dispositivos móviles ahora ha alcanzado un grado que nunca fue concebible ni para los ordenadores de sobremesa ni para los portátiles. El proyecto Beeware tiene como objetivo poder publicar una aplicación escrita en Python en diferentes plataformas – idealmente sin problemas con diferentes entornos, herramientas de compilación o compatibilidad. Actualmente, esto todavía no es posible sin problemas: el soporte del lenguaje para plataformas que no sean PC de escritorio x86 estándar aún no está maduro. El objetivo es poder descargar una App en un Smartphone en un futuro cercano sin mostrar que fue escrita en Python, según Warsaw.

Otra cosa, según Warsaw, es la capacidad limitada de Python para distribuir tareas entre múltiples núcleos de un procesador. Por lo general, hay mucho más de un núcleo dentro de un chip moderno. Hasta ahora, Python no ha podido usar estas capacidades. Un proyecto prometedor es el trabajo de Eric Snow. En su proyecto a largo plazo, Snow quiere revisar la versión actual de la función de subintérprete de Python y cambiar la forma en que cada subintérprete individual interactúa con el bloque de intérprete global de Pyhon.

La comunidad de Python está trabajando actualmente en la revisión de la biblioteca estándar del lenguaje. Si bien en realidad se considera una de las fortalezas de Python porque cubre una amplia gama de tareas comunes, y es la razón por la que Python tiene el atributo de “baterías incluidas”, todavía hubo sugerencias en el PLS de 2021 sobre si, por varias razones, no sería mejor si los usuarios pudieran simplemente elegir sus propias bibliotecas de código del repositorio de PyPI.

Las ideas que han dado forma al lenguaje de programación en los últimos años provienen de la comunidad, de personas que están llevando a Python al límite y abriendo nuevos campos de aplicación, como la creación de la primera imagen de un agujero negro, según Warsaw.

Python está ganando popularidad