Hablemos de PYTHON

Violeta and Chip discuss Python's origins with Guido van Rossum in the late 1980s, its name from Monty Python, and why it dominates AI and data science. The language's "Zen" philosophy emphasizes one obvious way to do things, unlike Perl. Companies like Google, Netflix, and Microsoft use it widely, and Python 3 keeps evolving without a planned version 4.
Chapters
Oye, Chip, eso que decías de que no habría Python 4, ¿es cierto?
Pues todo apunta a que sí. El BDFL... ¿El qué? BDFL. ¿No recuerdas nuestro capítulo de Rust? El dictador benevolente de por vida.
¡Ah!
Sí, sí, vale, perdona.
Pues eso, que el dictador benevolente de Python, Guido van Rossum, dijo que sería muy difícil que hicieran Python 4.
¿No habrá más avance en Python entonces?
¿Qué dices? ¡Nada de eso! Cada nueva versión de Python 3 trae nuevas adiciones, mejoras y correcciones. Python no para de mejorar.
Suena bien, ¿nos cuentas la historia de Python? Antes de continuar, un inciso.
¿Te gustaría apoyar a nuestro canal?
No te olvides de darle a me gusta y, si no lo estás, suscribirte para no perderte futuro contenido. También puedes apoyarnos si quieres uniéndote al canal o enviándonos un gracias aquí abajo en el botoncito, nosotros te lo agradeceremos igualmente y os avisaremos de ofertas y promociones del canal.
Y además también podemos acompañarte desde tu plataforma de podcast favorita.
Ahora sí, continúa. ¿De dónde viene Python?
Buena pregunta, Violeta.
Te lo dejo pasar... de momento.
Pues a ver, Python fue creado en los 80.
En 1989.
Guido van Rossum tuvo la idea de crearlo en la Universidad de los Países Bajos.
Era una nueva versión del lenguaje ABC, desarrollado para el sistema operativo Amoeba del CWI de los Países Bajos.
Centro de Matemáticas e Informática. Eso, que no me salía.
¿Ese es el significado de CWI?
Centrum Wiskunde en Informatica.
Tengo el neerlandés un poco oxidado.
Ya.
Pues eso, Guido propuso Python para tener una mejor forma de manejar las excepciones, aunque la sintaxis y las ideas de base de Python vienen de ABCI y se dio a conocer públicamente en los 90.
En 1991, a través de la red de alt.sources.
Me lo has quitado de la boca.
Ya, ¿y sabes de dónde viene el nombre?
Sí, esa me la sé. Buena pregunta. Sí, decía que me la sé. Y buena observación, Violeta.
Claro, bueno, ¿a Guido le gustan las serpientes?
No, bueno, no lo sabemos. El nombre viene por los Monty Python.
A Guido le encantaba el programa de la BBC del famoso grupo de cómicos Monty Python.
Pero el logotipo actual El actual tiene dos serpientes, una azul y otra amarilla enlazadas en modo de cruz o signo de suma. ¿Estás seguro de que es por Monty Python?
Sí, el primer logotipo, que era una serpiente pixelada... ¡Ah!
¡Y muy mona!
Pues se eligió esa por ser una representación visual más fácil de apreciar y reconocer.
Ahora el logotipo son dos serpientes de dos colores.
Sí, sigue siendo la idea de la serpiente, pero como dos serpientes.
Es un movimiento de la comunidad para crear una mejor identidad y marca para el lenguaje. Un símbolo.
También como símbolo de la fundación que hay detrás.
¿También hay fundación de Python?
Sí, incluso sucedió algo muy curioso en la versión 1.6 de Python.
¿Cuál fue el problema?
En el año 2000, el equipo de desarrollo de Python fue movido a BeOpen, una iniciativa de software libre que requería un cambio de licencia, y la Free Software Foundation se quejó. Al parecer, Tal y como estaba redactada, no podían aceptarla como compatible con GPL y eso causaba un problema legal.
Supongo que no contar con el apoyo de la Fundación de Software Libre sería nefasto. ¿Cómo lo solventaron?
En la versión 1.6.1.
¿Cambio menor?
Cambio menor. Además de corregir algunos fallos, se modificó la licencia lo suficiente en concordancia con BeOpen y la Fundación de Software Libre.
No fue entonces para tanto.
Y dime, existiendo Perl y otros lenguajes de scripting, ¿realmente hacía falta Python? Pues...
Curiosamente, el anuncio del cambio a VeeOpen en Slashdot fue recibido no muy bien por parte de los usuarios de Slashdot. Algunos argumentaron que parecía un movimiento de Microsoft. Otros asumieron que podrían haberse dedicado esos esfuerzos a mejorar Perl.
¿Ves lo que yo decía?
Sí, imagina que le dices a la gente de Perl que programe con espacios en lugar de llaves.
Eso sería impensable.
¿Ves?
Algunos consideran a Perl como una lengua vernácula, más de la calle como podríamos decir, mientras que Python se veía como una lengua de alto standing, más burocrática.
¿Burocrática? ¿Eso quiere decir que hay que escribir mucho código innecesario?
No, innecesario no, solamente excesivo. Explícito. Nada de magia negra.
¿Magia negra?
Sí, en algunos lenguajes de programación se denomina magia negra a todo el código que se escribe en algún lugar y tiene efecto en otro que no está ligado.
Vamos, que tu código se comporta de forma nada intuitiva y no sabes el porqué. No hay nada escrito en esa parte del código que haga pensar que puede estar sucediendo.
Es verdad que Python Es muy explícito, pero tiene sobrecarga de operadores y si al operador de suma le cambias su comportamiento para que haga otra cosa, esto puede conducir a equívocos al leer el código.
Vamos, que magia negra siempre hay.
No siempre. Quizás podríamos hacer un top de lenguajes con más magia negra y que más frustración causan en sus programadores.
Quizás.
Pero entonces, ¿realmente hacía falta Python?
¿Pro? ¿Una ayudita?
Tengamos en cuenta sus inicios. Python fue creado a raíz de ABC, y ABC es un lenguaje creado en un entorno universitario para hacer más fácil el aprendizaje de los lenguajes de programación.
Entonces, Python tiene la misión de hacer fácil la programación, ¿no como Perl?
Perl tiene la misión de hacer fácil la administración de sistemas. Es otro cometido diferente.
¿Y Go?
Hacer más fácil la programación de sistemas distribuidos, concurrentes y altamente escalables.
No obstante, la misión de Python se ha ido centrando en su zen, lo que hace que pueda encajar con su forma de ver las cosas o no. Por ejemplo, Perl tenía el lema hay varias formas de hacerlo y Python sin embargo en su zen nos dice elegante es mejor que feo.
Elegancia ante todo.
Explícito mejor que implícito.
Queda claro, nada de magia negra.
Simple mejor que complejo y complejo mejor que complicado.
Vamos, en niveles.
Plano mejor que anidado. Y disperso mejor que denso.
Preferimos muchas funciones mejor que una función con todo y anidado hasta acabar el scroll horizontal.
Los casos especiales no son lo suficientemente especiales para romper las reglas.
¡No hagáis trampa!
Aunque lo práctico vence a lo puro.
Entonces, ¿sí las rompemos?
La legibilidad cuenta.
Importante y no un plus.
Los errores no deben pasar silenciosamente.
Que lo rompan todo y rápido para poder arreglarlos.
A menos que los hayamos silenciado explícitamente.
Algunos errores ya los conocíamos y no importan.
Ante la ambigüedad, rechaza la tentación de adivinar.
Si hay ambigüedad es como si hubiese un error, ¡hay que corregirlo!
Debe haber una y preferiblemente solo una forma obvia de hacerlo.
Lo contrario a Perl, vaya.
Aunque esa forma no sea obvia al principio, a menos que seáis neerlandés.
¿Los neerlandeses son tan buenos?
Ahora es mejor que nunca.
¡Esta es ambigua!
Aunque nunca, esa vez es mejor que ahora ya.
Que lo hagas ya, pero si requiere urgencia mejor considéralo... o eso creo.
Si la implementación es difícil de explicar, es mala idea.
¡Hombre! Si no eres capaz de explicarlo, ¿cómo vas a implementarlo?
Si la implementación es fácil de explicar, puede que sea buena idea.
¿No es muy de capitán obvio?
Los espacios de nombres son una gran idea. Hagamos más de eso.
¿Python tiene espacios de nombres?
Pues no me suenan como tal, es decir, tienes alcance de las variables, pero no puedes crear tus propios espacios de nombres.
Vaya, no es tan bueno como Go.
Tiene cosas muy buenas y es muy sencillo.
Pues dime, ¿por qué se ha hecho tan conocido?
Pues son muchos los factores. En principio, porque es fácil de aprender y usar. Surgió en un entorno universitario y, por tanto, obtuvo una comunidad extensa y activa.
¿Muchos jóvenes neerlandeses ávidos de programación?
No solo neerlandeses. Al ser publicado en la red, como Linux, obtuvo mucho apoyo de grupos alrededor del mundo.
Vale, entonces es fácil y tuvo un soporte inicial muy bueno.
También su flexibilidad, su versatilidad para desarrollo web y su aparición de herramientas para análisis de datos.
Exacto. Python es considerado uno de los principales lenguajes para la implementación de soluciones de inteligencia artificial.
Además, es eficiente, rápido y confiable.
¿Rápido y eficiente? ¿Seguro?
Los bancos de pruebas en los que se compara el rendimiento de aplicaciones haciendo una misma tarea es tan ridícula como poner a un grupo de animales a correr por el desierto y medir su desempeño. Si buscamos la tarea específica donde Python está súper optimizado en comparación con el resto, ¿diremos entonces que los demás son lentos?
¿Entonces es rápido?
Sí, ha dicho eso, pero yo diría que Python es rápido en los casos de uso para los que más se emplea. Fuera de esos casos de uso puede que no sea tan rápido.
Vale, Chip, esta va para nota. ¿Qué empresas emplean Python?
¿Vas a cambiar de trabajo?
Venga, Chip, que es una curiosidad sana.
Pues tengo constancia de Microsoft, que es donde Guido Van Rossum ha sido contratado. Además están Uber, Goldman Sachs, PayPal, Netflix y Google.
¿Google lo usa? No tenía ni idea.
Sí, lo emplean para crear herramientas de administración de sistemas.
¿No sería mejor Perl ahí?
No si usan Ansible.
Discutible que usar Ansible sea usar Python.
También lo usan en la generación de informes, herramientas para revisión de código y algunas aplicaciones como Google App Engine.
Hay que recordar que grandes proyectos como Flask, Django o NumPy han hecho mucho más fácil la adopción de Python.
No olvides Ansible.
Soy más de Chef.
Por último, ¿por qué no habrá Python 4?
A diferencia de Perl, Python no ha derivado en un nuevo lenguaje.
Chip, las comparaciones son odiosas.
Pero tiene razón. Python no ha quedado estancado en Python 3, solo ha decidido no hacer planes para Python 4.
¿Por qué? ¿Se quedaron sin ideas?
Es que Python 3 ya es ¡Perfecto! ¿Para qué cambiarlo?
En verdad fue por el traumático cambio que hubo de Python 2 a Python 3.
No fue tanto.
Niños del verano.
Según he visto, Python 2.7 fue lanzado en 2010 y se anunció su mantenimiento hasta 2020, y también que ninguna nueva versión sería lanzada para Python 2.
Sí, en teoría 2020 fue el último año. Dieron unos años de margen de tiempo para ir cambiando el código de Python 2 a Python 3.
Pero los cambios eran muchos, casi tantos como de Per a Raku.
No tantos, pero sí es verdad que rompieron la compatibilidad hacia atrás.
Había que respetar el zen, no excepciones, una sola forma de hacer las cosas, por lo que mantener dos versiones de Python iba en contra de su zen.
Entonces, después de esta traumática transición, quedaron sin ganas de hacer más cambios radicales.
Exacto. No es por no tener ideas, ideas tienen muchas traídas de otros lenguajes como TypeScript, De hecho, no es el primer caso. Las listas de comprensión y funciones como map y filter fueron implementadas por un programador de Haskell hace mucho tiempo, dando ese sabor funcional a Python.
Eso quiere decir que aunque Python 4 no esté planificándose, puede haber mejoras en Python 3 tomando ideas de otros lenguajes. ¡Nos queda Python para rato!
Conclusiones.
Python es un grandioso, estupendo, fantástico, maravilloso... ¡Chip! Python es un gran lenguaje y muy fácil de aprender.
Hemos visto que aunque estará en Python 3 por algún tiempo, no ha quedado estancado y su estabilidad actual es una promesa a sus usuarios de que su inversión en mantenimiento será mucho menor.
Invertid en Python.
¿Vosotros habéis usado Python?
¿Habéis abierto la página de alguna empresa citada en búsqueda de posiciones de trabajo?
¿Sabéis de los frameworks de Python para crear videojuegos? Déjanos tu comentario.
Anda, si pongo esto así, oh, qué elegancia. Voy a probar.
Vaya, vaya.
¿Qué? ¿Qué pasó?
Que has probado Julia y te estaba gustando.
No, ¿qué dices? Me has pillado viendo el Google I/O.
Anda, anda, déjalo. Pero tiene una sorpresa para ti.
Continuará.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








