Python 3.15
Python 3.15 introduce mejoras de rendimiento y nuevas funciones destacadas, incluido un JIT experimental mejorado, lazy imports explícitos para acelerar el arranque, un nuevo perfilador de muestreo (“tachyon”), desempaquetado en comprensiones y un tipo `frozendict` integrado. Los contribuyentes destacan el nuevo ABI estable abi3t para la compilación sin GIL como un gran paso hacia una compatibilidad binaria más sencilla entre variantes del intérprete, reduciendo la complejidad del empaquetado y de CI. Gran parte del debate se centra en las políticas de soporte de versiones, con mantenedores satisfechos de poder dejar atrás intérpretes en EOL mientras que los usuarios de sistemas antiguos se preocupan por las roturas y por la creciente necesidad de gestionar runtimes de Python separados fuera de los que incluye su sistema operativo.
Página de lanzamiento y peculiaridades de distribución
- Algunos usuarios informan de enlaces rotos o mal anclados en la página de lanzamiento de la 3.15 (por ejemplo, Sentinel, lazy imports enlazando al final de la página).
- El tarball fuente de xz es notablemente más grande que el de 3.14; la investigación apunta a ~10MB de GIF animados en la documentación (para el perfilador Tachyon).
- Algunos ven esto como una hinchazón innecesaria y preferirían documentación ligera basada en SVG.
- Otros sostienen que los críticos deberían contribuir con recursos mejorados en su lugar.
Rendimiento, JIT y perfilado
- Las mejoras de velocidad del 7–12% reportadas por el JIT experimental (según la plataforma) son bien recibidas como ganancias incrementales sólidas.
- El nuevo perfilador de muestreo Tachyon se destaca como especialmente útil para perfilar procesos en ejecución en producción.
Lazy imports y arranque
- Los lazy imports explícitos de PEP 810 generan entusiasmo, especialmente para aplicaciones grandes o sensibles al arranque.
- Algunos preguntan por qué no se habilita globalmente; las respuestas apuntan a:
- Efectos secundarios en tiempo de importación (por ejemplo, registros) y orden de importación no determinista.
- PEP 810 documenta explícitamente estos compromisos.
- Se menciona un analizador estático (“lifeguard”) que examina el código para identificar dónde es seguro habilitar lazy imports.
Soporte de versiones, empaquetado y Python del sistema operativo
- Los mantenedores dan la bienvenida a la 3.15 principalmente porque la 3.10 ahora está en EOL, lo que les permite depender de funciones de 3.11+.
- Debate:
- Los mantenedores sostienen que el soporte indefinido de versiones antiguas no es realista; los usuarios pueden quedarse en versiones antiguas de paquetes, y los metadatos aseguran que
pipelija una versión compatible. - A algunos usuarios no les gusta la norma de “abandonar” Pythons antiguos cuando siguen siendo distribuidos por distros o proveedores.
- Los mantenedores sostienen que el soporte indefinido de versiones antiguas no es realista; los usuarios pueden quedarse en versiones antiguas de paquetes, y los metadatos aseguran que
- Las distros empresariales/Linux a menudo sobreviven al soporte de Python upstream, pero distribuyen intérpretes más nuevos en flujos paralelos.
- El Python fijado/incluido de macOS (3.9 vía Xcode) se considera obsoleto y confuso; el consenso es evitar el Python del sistema y usar entornos gestionados (por ejemplo, uv, virtualenvs).
Tipado, IA y rendimiento
- Un comentarista afirma que los LLMs funcionan mejor con Python sin tipar y que las anotaciones pueden ser “ruido” dado que la mayor parte de los datos de entrenamiento no está tipada.
- Otros replican que:
- El rendimiento en tiempo de ejecución hoy no se beneficia de las anotaciones.
- Los tipos siguen siendo cruciales para la claridad humana, la corrección y el código de nivel profesional.
Python sin GIL y abi3t
- El nuevo ABI estable “abi3t” para la compilación sin GIL es elogiado como un gran habilitador del ecosistema.
- Ejemplo: algunas bibliotecas clave ya publican una sola wheel usable tanto por compilaciones con GIL como sin GIL en 3.15+.
- Los mantenedores señalan grandes reducciones en CI al usar ABIs estables y anticipan un soporte futuro más sencillo entre versiones.
- Persisten preguntas sobre qué APIs C pasarán a formar parte de la superficie limitada/abi3(t).
Características del lenguaje y PEPs
- Varias funciones pequeñas pero largamente deseadas reciben atención positiva:
- Desempaquetado en comprensiones (PEP 798).
frozendictintegrado (PEP 814).- UTF-8 como codificación predeterminada en todas las plataformas (PEP 686), especialmente beneficioso en Windows y contenedores mal configurados.
- Algunos usuarios se sorprenden de que UTF-8 no fuera ya el valor predeterminado universal, reflejando un comportamiento anterior sutil (dependiente de la locale).
Ecosistema del lenguaje y debate sobre Rust
- Un hilo secundario especula que solo TypeScript/JavaScript, Rust y Python “sobrevivirán”, con reescrituras a gran escala en Rust (incluyendo algunos ejemplos del mundo real).
- Otros replican:
- Señalan que ecosistemas arraigados (C, C++, Java, C#, Swift, Kotlin, COBOL, C embebido) probablemente no desaparecerán.
- Observan que el núcleo de CPython no se está reescribiendo en Rust; los esfuerzos actuales solo exploran permitir algunos componentes en Rust.
- Algunos argumentan que habría que tener menos lenguajes; otros prefieren la diversidad y la innovación continuas, especialmente con herramientas de IA.