DuneTech Labs Noticias Volver al sitio
← Todas las noticias

En el radar ·

Lenguajes: qué versión tienes, hasta cuándo tiene parches y qué cambia

La publicación del 15 de octubre dijo qué versiones ya no reciben parches y pidió una lista: qué lenguaje y qué versión usa cada sistema. Aquí va cómo hacer esa lista, qué quiere decir cada fase de soporte, lo que viene en los próximos doce meses y qué revisar antes de pasar a Python 3.15 o a TypeScript 7.

Cómo hacer la lista

Cada lenguaje tiene un comando que dice qué versión está instalada, y muchos proyectos declaran en un archivo cuál necesitan. Con las dos cosas se arma la lista que pide la publicación: qué versión corre en cada sistema y hasta cuándo tiene parches. Las fechas que todavía no llegan son las previstas por cada proyecto y pueden cambiar.

LenguajeVersión instaladaDónde la declara el proyectoCon parches, hasta
Pythonpython --version; en Windows, con el administrador de instalaciones py, py list muestra todas las instaladasrequires-python en pyproject.toml, si el proyecto lo pone3.11: octubre de 2027
3.12: octubre de 2028
3.13: octubre de 2029
3.14: octubre de 2030
3.15: octubre de 2031
Gogo versionLa línea go de go.mod: la versión mínimaLas dos más nuevas: al 17 de octubre, la 1.26 y la 1.27
Rustrustc --versionrust-version en Cargo.toml, si el proyecto lo poneSolo la estable más reciente: al 17 de octubre, la 1.99
Node.jsnode --version—22: 30 de abril de 2027
24: 30 de abril de 2028
26: 30 de abril de 2029
TypeScriptnpx tsc --version, dentro de la carpeta del proyectoEn package.json, entre las dependencias del proyectoLas fuentes oficiales consultadas no dan una fecha de fin de soporte

La documentación de Node.js no dice dónde se declara la versión: describe solo los campos de package.json que usa Node, y dice que otros los usan otras herramientas, como npm. Y lo que declara el proyecto no siempre es solo informativo: en Go, si un proyecto (un «módulo») pide una versión más nueva que la instalada, Go la descarga y la usa; si eso está desactivado, se niega a compilarlo.

Python: las fases, el último parche de la 3.10 y la 3.15

Ya publicada, cada versión de Python pasa por tres fases. En la primera («bugfix») acepta correcciones de errores y de seguridad, y publica instaladores nuevos más o menos cada dos meses. A los dos años (antes de la 3.13, a los 18 meses) pasa a «security»: solo correcciones de seguridad, y ya sin instaladores nuevos. A los cinco años llega a su fin («end-of-life»): ya no se acepta ningún cambio. La 3.13 acaba de entrar en «security»: la 3.13.16, del 1 de octubre, fue su última versión con todas las correcciones.

El último parche de la 3.10, la 3.10.22, cerró ocho fallas con identificador CVE (el número con que se registra públicamente cada falla de seguridad). Por ejemplo, una en la que las credenciales que guarda un programa en Python para un sitio HTTPS podían usarse también en su versión HTTP, sin cifrar, y otra al extraer archivos .tar, que podía crear carpetas fuera de la carpeta de destino. Las que se descubran desde ahora ya no se cierran en la 3.10.

La tabla «Supported versions» de la guía de Python: cada versión, su fase y su fin de soporte.
La tabla oficial de Python, devguide.python.org/versions, capturada el 17 de octubre de 2026. «main» es la versión en desarrollo, la futura 3.16.

Antes de pasar a la 3.15

El cambio que más puede notarse es la codificación, la forma en que se guardan letras como la ñ y los acentos: la 3.15 lee y guarda en UTF-8 los archivos de los programas que no indican la codificación, aunque el sistema use otra. Según el PEP 686, la propuesta oficial que lo definió, afecta sobre todo a quien usa Windows, y en esos programas puede causar errores, texto con caracteres raros o incluso datos dañados sin aviso.

Otros cambios de la 3.15 que pueden romper programas, según su documentación:

  • strptime() da error si el formato trae el día (%d) sin el año.
  • En sqlite3.connect(), todos los parámetros menos el de la base de datos hay que pasarlos con su nombre.
  • Se quitó el modo CGI del servidor web de prueba (python -m http.server --cgi).
  • Se quitaron los métodos load_module() de los cargadores de módulos.

Dos novedades son opcionales. La importación diferida carga cada parte del programa hasta que se usa; solo actúa si el código la pide o si se activa con -X lazy_imports=all o con la variable PYTHON_LAZY_IMPORTS=all, y cuando actúa, una parte que falta da el error al usarse, no donde se importa. Y el compilador JIT, que traduce el programa a instrucciones de la máquina mientras corre, sigue siendo experimental: en las pruebas de Python en Linux y en Mac va desde aproximadamente un 15% más lento hasta más del doble de rápido, según el programa.

Un aviso para Windows: el instalador de siempre está en desuso desde la 3.14 y ya no se publicará para la 3.16; lo reemplaza el administrador de instalaciones py.

Node.js: parches el 21 de octubre y un calendario nuevo

En su aviso de parches de octubre, Node.js dijo que el miércoles 21, o poco después, publicará parches de seguridad para la 26, la 24 y la 22; la falla más grave que corrigen es de gravedad alta. El aviso no dice cuántas son, pero sí esto: las versiones que ya llegaron a su fin siempre tienen las fallas que se corrigen. Quien sigue en la 20 o anteriores, o en una impar (21, 23 o 25), las tendrá sin arreglo.

La tabla del calendario de Node.js: la 22, la 24 y la 26, con sus fechas de inicio, de soporte a largo plazo, de mantenimiento y de fin.
El calendario oficial, github.com/nodejs/Release, capturado el 17 de octubre de 2026.

Node.js también tiene fases. «Current» es la versión recién salida, que todavía recibe cambios. «Active LTS», la de soporte a largo plazo, recibe novedades revisadas, correcciones y actualizaciones durante 12 meses. Después pasa a «Maintenance» por 18 meses más: correcciones críticas y de seguridad. Hasta la 26, solo las versiones pares llegan a LTS; las impares dejan de tener soporte a los seis meses. En las próximas dos semanas cambian dos: la 24 pasa a «Maintenance» el 20 de octubre, y la 26 entra a «Active LTS» el 28. La 22 llega a su fin el 30 de abril de 2027.

Desde la 27 cambia el calendario: Node.js sacará una versión al año en lugar de dos, y todas serán de soporte a largo plazo, sin la diferencia entre pares e impares. La 27 empieza en octubre de 2026 como versión de prueba («Alpha»), pasa a «Current» en abril de 2027 y a LTS en octubre de 2027, con soporte hasta abril de 2030. La 26 es la última con el calendario de siempre. Node.js aclara que el plan no es definitivo y puede cambiar.

Para quien no pueda actualizar a tiempo, Node.js dice que hay soporte de pago para las versiones que ya pasaron su fase de «Maintenance», por medio de las empresas socias de su programa «OpenJS Ecosystem Sustainability Program».

La 26, por cierto, trae activada la API Temporal para manejar fechas y horas, y quitó del todo writeHeader() del servidor HTTP: se usa writeHead().

Go: la 1.27

Go da parches a sus dos versiones más nuevas: cuando sale la 1.x+2, la 1.x deja de recibirlos. Con la 1.27, de agosto, la 1.25 se quedó sin ellos; si se sigue el ritmo de siempre, la 1.28 saldrá en febrero de 2027 y la 1.26 dejará de recibir parches.

La 1.27 mantiene la promesa de compatibilidad de Go: casi todos los programas deberían compilar y correr como antes. Lo que puede notarse:

  • El paquete encoding/json usa por dentro su nueva implementación. El resultado es el mismo, pero el texto de los mensajes de error puede cambiar; si algo dependía de ese texto, por ahora GOEXPERIMENT=nojsonv2 vuelve a la anterior.
  • En Mac pide macOS 13 Ventura o posterior.
  • Se quitaron cinco ajustes GODEBUG de TLS y de certificados (como tls3des); si un proyecto los fija en su valor viejo, no compila.
  • Ya no funciona con el control de versiones Bazaar (bzr).

Trae además, como opción, firmas poscuánticas, pensadas para resistir a las computadoras cuánticas (ML-DSA, del estándar FIPS 204), y el intercambio de llaves MLKEM1024.

Rust: una versión cada seis semanas

Rust saca una versión estable cada seis semanas, «como un reloj», y solo le da soporte a la más reciente. Si sigue ese ritmo, la 1.100 saldrá hacia el 12 de noviembre y la 1.99 se quedará sin soporte; Rust todavía no anuncia esa fecha. Su documentación insiste en que actualizar a la estable nueva no debería dar miedo.

Entre las notas de compatibilidad de la 1.99, dos que conviene revisar: por omisión, Cargo, la herramienta con la que se compilan los proyectos de Rust, ya no compila de forma incremental (reaprovechando lo ya compilado) cuando detecta que corre en integración continua (CI: el servidor que compila y prueba el código cada vez que alguien lo cambia); y los módulos viejos de números enteros, como std::i32, quedan del todo en desuso (en lugar de std::i32::MAX, se usa i32::MAX). La 1.99.1, del 15 de octubre, corrige errores que se colaron en versiones anteriores, entre ellos uno en el que una función de Rust que devuelve verdadero o falso a código de otro lenguaje, como C, podía entregar un valor mal formado en procesadores x86_64 (los de 64 bits de Intel y AMD); el anuncio no los presenta como fallas de seguridad.

En Cargo.toml, la clave rust-version dice qué versión de Rust necesita el proyecto; si se compila con una que no alcanza, Cargo lo marca como error.

TypeScript 7: lo que deja de aceptar

TypeScript 7 llevó su compilador a Go. En las pruebas de Microsoft compila de 7.7 a 11.9 veces más rápido y usa menos memoria (18% menos en el código de VS Code). Con la opción experimental --checkers 8, que reparte la revisión entre 8 revisores en paralelo (por omisión son 4), el código de VS Code baja de 10.6 a 7.51 segundos, a cambio de usar más memoria. Microsoft aclara que los resultados cambian según el proyecto y la computadora.

La tabla de velocidad de TypeScript 7: segundos de compilación con la 6 y con la 7 en cinco proyectos.
La tabla del anuncio de TypeScript 7.0, del 8 de julio de 2026, capturada el 17 de octubre: con 4 revisores en paralelo, el valor por omisión.

Entre lo que la 7 ya da por error:

  • compilar a es5;
  • baseUrl, y moduleResolution en node o node10;
  • los módulos amd, umd, systemjs o none.

Además, hereda los valores por omisión que trajo la 6: el modo estricto (strict) viene activado, y Microsoft avisa que los cambios en rootDir y types son los que más pueden sorprender.

La 7 todavía no trae una API para que otras herramientas la usen; Microsoft espera publicarla con la 7.1. Al 17 de octubre, el blog de TypeScript no había anunciado la 7.1.

Lo que viene en los próximos doce meses

FechaQué pasa
20 de octubre de 2026Node.js 24 pasa a «Maintenance»
21 de octubre de 2026, o poco despuésParches de seguridad de Node.js 22, 24 y 26
28 de octubre de 2026Node.js 26 entra a soporte a largo plazo (LTS)
Hacia el 12 de noviembre de 2026Rust 1.100, si sigue el ritmo de seis semanas; la 1.99 se queda sin soporte
Febrero de 2027Go 1.28, si sigue su ritmo; la 1.26 deja de recibir parches
Abril de 2027Sale Node.js 27 como «Current» (plan no definitivo)
30 de abril de 2027Fin de soporte de Node.js 22
Agosto de 2027Go 1.29, si sigue su ritmo; la 1.27 deja de recibir parches
6 de octubre de 2027Python 3.16 (fecha prevista)
Octubre de 2027Fin de soporte de Python 3.11

Fuentes

Consultadas del 8 al 17 de octubre de 2026.

Python

  1. Python, estado de las versiones: «security: After two years (18 months for versions before 3.13), only security fixes are accepted and no more binaries are released»; «end-of-life: Five years after a release, support ends».
  2. Python, las versiones del 1 de octubre: «Python 3.10.22 is the final release of Python 3.10»; «Python 3.13.16 is the last full maintenance release of 3.13; future 3.13 releases will contain security fixes only».
  3. Python, PEP 686: «So this change mostly affects Windows users»; «this change may cause UnicodeError, mojibake, or even silent data corruption».
  4. Python, el módulo io: «you can enable the -X warn_default_encoding command line option or set the PYTHONWARNDEFAULTENCODING environment variable».
  5. Python, qué cambia en la 3.15: «Python's UTF-8 mode may be disabled with the PYTHONUTF8=0 environment variable or the -X utf8=0 command-line option»; «All parameters of sqlite3.connect() except database are now keyword-only»; «The speedups for JIT builds versus no JIT builds range from roughly 15% slowdown to over 100% speedup».
  6. Python, la línea de comandos: «Print the Python version number and exit». Y Python en Windows: «This installer is deprecated since 3.14 and will not be produced for Python 3.16 or later».
  7. Python, PEP 621, sobre requires-python: «The Python version requirements of the project».

Node.js

  1. Node.js, parches de octubre: «on or shortly after, Wednesday, October 21, 2026»; «The highest severity issue fixed in this release is HIGH»; «End-of-Life versions are always affected when a security release occurs».
  2. Node.js, su calendario: «Odd-numbered release lines are not promoted to LTS»; «Dates are subject to change». Y versiones anteriores: «Commercial support for versions past the Maintenance LTS phase is available through our OpenJS Ecosystem Sustainability Program partners».
  3. Node.js, el calendario nuevo: «Starting with 27.x, Node.js will move from two major releases per year to one»; «Every release becomes LTS»; «This schedule is not final and may be amended».
  4. Node.js, la 26.0.0: «The Temporal API is now enabled by default in Node.js 26». Y su línea de comandos: «Print node's version»; sus paquetes: «Other tools (such as npm) use additional fields which are ignored by Node.js and not documented here».

Go

  1. Go, su ciclo de versiones: «Minor releases to address problems (including security issues) for Go 1.x stop once Go 1.x+2 is released»; su política de versiones; y cómo instalarlo: «Confirm that the command prints the installed version of Go».
  2. Go, las versiones del compilador: «The go line declares the minimum required Go version for using the module or workspace»; «the go command runs the newer toolchain instead».
  3. Go, notas de la 1.27: «The encoding/json package is now backed by the v2 implementation»; «Go 1.27 requires macOS 13 Ventura or later»; «If they are set to an old value, the go command will fail».

Rust

  1. Rust, el libro: «Rust releases every six weeks, like clockwork»; y cómo instalarlo, con rustc --version. Su política de seguridad: «The Rust project only provides support and security updates for the most recent stable release and the latest releases in our beta and nightly channels». Y sus versiones, donde al 17 de octubre la última es la 1.99.1.
  2. Rust, la referencia de rust-version: «When your package is compiled on an unsupported toolchain, Cargo will report that as an error».
  3. Rust, notas de las versiones: «In Cargo, incremental compilation is now disabled by default when running in CI». Y la 1.99.1: «Rust 1.99.1 fixes the following regressions from prior releases».

TypeScript

  1. TypeScript, anuncio de la 7.0: «target: es5 is no longer supported»; «strict is true by default»; «The default number of type-checking workers is 4»; «we've published a new compatibility package, @typescript/typescript6»; «it does not ship with an API».
  2. TypeScript, anuncio de la 6.0: «TypeScript 6.0 acts as the bridge between TypeScript 5.9 and 7.0». Sus opciones de compilación: «Print the compiler's version». Y su blog, donde al 17 de octubre la última entrada es la de la 7.0.
Tema
Letra
Modo