Radio and PodcastRadio and PodcastLive Radio & Podcasts
Python en español #11: Tertulia 2020-12-15 artwork
Technology

Python en español #11: Tertulia 2020-12-15

Python en español by Jesús Cea

Apr 27, 202101:42:06Technology

Más de lo que nunca quisiste aprender sobre JIT, guardas y especialización En lo que sigue, cuando se habla de CPython, se refiere al intérprete de referencia de Python, que está escrito en lenguaje C: . Participantes: E...

About This Episode

Python en español #11: Tertulia 2020-12-15 is an episode from Python en español by Jesús Cea. Más de lo que nunca quisiste aprender sobre JIT, guardas y especialización En lo que sigue, cuando se habla de CPython, se refiere al intérprete d...

Podcast

This episode belongs to Python en español.

Listen Online

Use the player on this page to stream the episode online.

Episode Details

Published Apr 27, 2021, 01:42:06 long, audio available.

Questions About This Episode

What is Python en español #11: Tertulia 2020-12-15 about?

Más de lo que nunca quisiste aprender sobre JIT, guardas y especialización En lo que sigue, cuando se habla de CPython, se refiere al intérprete de referencia de Python, que está escrito en lenguaje C: . Participantes: Eduardo Castro, email: info@ecdesign.es . Conectando desde A Guarda. Jesús Cea, email: jcea@jcea.es , twitter: @jcea , , . Conectando desde Madrid. Javier, conectando desde Madrid. Víctor Ramírez, twitter: @virako , programador python y amante de vim, conectando desde Huelva. Miguel Sánchez, email: msanchez@uninet.edu , conectando desde Canarias. Audio editado por Pablo Gómez, twitter: @julebek . La música de la entrada y la salida es "Lightning Bugs", de Jason Shaw. Publicada en con licencia - Creative Commons Attribution 4.0 International License . [00:52] Aviso de que se está grabando. Temas legales. [01:52] Valor de publicar estos audios y las dificultades para hacerlo. [02:42] Métodos mágicos: __set_name__() . PEP 487: . [04:12] Problemas con PIP 20.3.2: . [05:52] ¿Actualizar a la última versión o esperar? Poder "echar atrás" fácil. Acumular cambios pendientes es deuda técnica. [10:42] Google caído . [11:02] Generación de wheels en varios sistemas: . auditwheel: . ¿Generación de Wheels en Microsoft Windows? [13:12] Caché local de PIP . [14:17] Event Sourcing . Módulo eventsourcing: . [14:42] De momento se puede usar el viejo "resolver" de dependencias de PIP. Se puede usar la opción -use-deprecated=legacy-resolver . Esa opción se puede meter también en el fichero de configuración, para no tener que escribirlo en cada invocación. Jesús Cea comete el pecado de meter paquetes Python en el sistema operativo. [17:02] Batallitas de Jesús Cea. Jesús lleva dos años dándole vueltas a esto: bpo35930: "Raising an exception raised in a "future" instance will create reference cycles": . Explicación detallada del asunto. Brainstorming. [21:22] Visión a alto nivel del recolector de basuras de Python (cpython) Contador de referencias. Inmediato, pero no recoge ciclos. Si se crean instancias y no se destruyen, se llama a un recolector "pesado" que también recoge ciclos. Esto puede ser problemático al arrancar el programa, antes de que la creación/destrucción de objetos se "estabilice". gc.disable() : . Jesús Cea "abusa" de los destructores y de que se ejecuten cuando él quiere. Lo práctico contra lo puro. Jesús ofrece cervezas. gc.collect() : . Esto sirve tanto para recoger los ciclos como para comprobar si tu programa tiene ciclos de memoria o no. Futures: . [35:29] Módulo Manhole . Explorar un programa en producción. Tracemalloc: . DTrace: . py-spy: . Pérdidas de memoria: Recordar lo hablado ya en tertulias anteriores. jemalloc: . MALLOC_PERTURB_ : . zswap: . [42:52] Micropython: . ESP8266: . ESP32: . Bluetooth Low Energy: . ¿Qué ventajas aporta usar Micropython? Velocidad de desarrollo y depuración. [52:42] ¿El futuro será mejor? O no. Desperdicio de recursos materiales porque realmente sobran. Python es mucho más lento que C y no digamos ensamblador. [57:17] Cambiar Python por un lenguaje más rápido. Go: . Rust: . C++: . [01:00:20] Python no pinta nada en móviles. Kivy: . [01:02:07] Acelerar Python. Subinterpreters: PEP 554: . Si los subintérpretes no compartiesen NADA, se podrían lanzar simultaneamente en varios núcleos de la CPU sin competir por un GIL único. JIT: . PYPY: . RPython: . Numba: . Cython: . Python es "potencialmente" muy dinámico, pero en la práctica los programas no lo son. Jesús pone varios ejemplos. Conversación densa entre Jesús y Javier. Guardas para comprobar que la especialización sigue siendo correcta. Por ejemplo, para los diccionarios: PEP 509 Add a private version to dict: "Tipado" más estricto. MYPY: . Pydantic: . Comprobación de tipos en tiempo de ejecución. Descubrimiento de tipos en tiempo de ejecución, proporcionando "especialización". psyco: . Eduardo Castro entra y simplifica la discusión. Jesús explica qué hace "a+b" internamente. [01:29:22] PyParallel Memoria transaccional: . (nota de Jesús Cea): Los sistemas de persistencia Python descritos en tertulias anteriores pueden considerarse casos de memoria transaccional... si somos flexibles. "Colorear" objetos y que dos hilos no puedan acceder a objetos del mismo color simultaneamente o en transacciones concurrentes. [01:30:42] PYPY es tan sofisticado que no lo entiende ni dios. Jesús Cea lo ha intentado y se ha rendido. psyco: . CFFI: . [01:35:22] Compilar CPython a WebAssembly va más rápido que en C nativo. [01:36:02] Simplemente compilar código python con Cython sin declaración de tipos dobla la velocidad de ejecución. ¡CPython lo puede hacer mejor! [01:36:57] Subinterpreters: PEP 554: . Poder usar todos los núcleos de la CPU. [01:38:07] Seguimos hablando del asunto. [01:39:07] Un problema es que Python tiene la vocación de funcionar en todas partes, así que hay resistencia para implementar mejoras solo en ciertas plataformas. [01:40:17] Cierre. Dadle una pesada al bug bpo35930: "Raising an exception raised in a "future" instance will create reference cycles": . [01:41:13] Final.

Where can I listen to Python en español #11: Tertulia 2020-12-15?

You can listen to Python en español #11: Tertulia 2020-12-15 online on Radio and Podcast. Open the player on this page to stream the available audio.

Which podcast is Python en español #11: Tertulia 2020-12-15 from?

Python en español #11: Tertulia 2020-12-15 is an episode from Python en español by Jesús Cea.

How long is this episode?

This episode is 01:42:06 long.

When was this episode published?

This episode was published on Apr 27, 2021.

Can I save Python en español #11: Tertulia 2020-12-15 for later?

Yes. Use the heart button on the episode page to add it to your favorite episodes list.

Are there related episodes from Python en español?

Yes. This page shows related episodes from Python en español when more episodes are available from the podcast feed.

Quick Answers About This Episode

Where can I listen to Python en español #11: Tertulia 2020-12-15?

You can listen to Python en español #11: Tertulia 2020-12-15 on this page when the episode audio is available from the podcast feed.

Which podcast is this episode from?

Python en español #11: Tertulia 2020-12-15 is from Python en español by Jesús Cea.

What are the episode details?

Published Apr 27, 2021 and 01:42:06 long