El titular es llamativo, pero la letra pequeña importa
El port independiente de TypeScript en Rust completó las ejecuciones probadas en aproximadamente 0,2–0,5 segundos, una mejora significativa frente a los 0,6–2,2 segundos de Go y los 6,6–13 segundos de JavaScript. Esto se traduce en una aceleración promedio de 2,5 a 3 veces respecto a Go, y de hasta 4,4 veces más rápido en escenarios con errores en cascada.
Es fundamental señalar que este aumento de rendimiento proviene de un port independiente en Rust, no del trabajo oficial de Microsoft en el compilador. En julio, Microsoft portó el compilador de TypeScript a Go, con una aceleración de ~10 veces respecto a la versión original en JavaScript. El port en Rust, que a menudo aprovecha agentes de IA, es una iniciativa impulsada por la comunidad construida sobre la versión en Go, no un reemplazo por parte de Microsoft.
Esta distinción es vital: el compilador en Rust es un desarrollo impresionante y no oficial. Demuestra lo que es posible cuando se rediseña una base de código con un enfoque en el rendimiento, a menudo con ayuda de IA.
Una aceleración llamativa en un único repositorio, aunque grande, como el propio proyecto TypeScript, es una señal sólida. Sin embargo, no es una prueba definitiva de que todos los proyectos de TypeScript obtengan automáticamente las mismas mejoras espectaculares. La tensión central radica en si estos benchmarks iniciales se generalizan a diversos tipos de proyectos y niveles de complejidad.
Cuatro pruebas, una brecha de rendimiento llamativa
Las pruebas de rendimiento utilizaron el repositorio oficial de TypeScript de GitHub, que consta de 793 archivos y aproximadamente 380.000 líneas de código. Este sólido banco de pruebas permitió una comparación exhaustiva en cuatro escenarios distintos: - Todos los tipos válidos - Un único error de tipo simple - Tipo básico roto con errores en cascada - Tipos recursivos profundos
Los resultados fueron contundentes. Con tipos válidos, JavaScript tardó alrededor de 7 segundos, Go 0,7 segundos y Rust completó la tarea en solo 0,3 segundos. Cuando un tipo básico estaba roto y provocaba errores en cascada, JavaScript registró 13 segundos, Go 2,2 segundos y Rust terminó en apenas 0,5 segundos. Estas cifras evidencian una brecha de rendimiento constante y significativa.
En general, el video indicó que Go fue aproximadamente 9–10 veces más rápido que JavaScript. Rust, a su vez, ofreció aproximadamente 24 veces la velocidad de JavaScript y casi tres veces la velocidad de Go. Aunque los tiempos redondeados y una sola base de código limitan la precisión absoluta, la jerarquía de rendimiento es innegable.
El port de TypeScript a Go realizado por Microsoft en julio ofreció mejoras sustanciales. Sin embargo, la implementación posterior en Rust demuestra un salto aún mayor, en particular en escenarios complejos de gestión de errores. Los datos muestran claramente un nuevo referente de rendimiento.
Por qué el resultado de Rust merece un análisis más detenido
Las cargas de trabajo de un compilador representan una prueba exigente para cualquier lenguaje, incluso Go o Rust. La verificación de tipos implica relaciones recursivas complejas, la construcción de grandes grafos de dependencias y la generación de diagnósticos que pueden multiplicarse exponencialmente cuando falla un tipo básico. Esta complejidad explica por qué el compilador de JavaScript tardó hasta 13 segundos en el escenario de "tipo básico roto".
La ventaja de rendimiento de Rust sobre Go, con un promedio de 2,5 a 3 veces más rápido, probablemente se debe a diferencias fundamentales en la gestión de memoria y la sobrecarga del runtime. Las abstracciones de costo cero de Rust, su disposición explícita de la memoria y la ausencia de recolector de basura pueden minimizar el comportamiento de asignación y reducir los fallos de caché, lo que ofrece una ventaja tangible en tareas limitadas por CPU como la compilación.
La aparición de un port de TypeScript a Rust, facilitado por el desarrollo asistido por IA, destaca una tendencia significativa. Las bases de código grandes y existentes con extensos conjuntos de pruebas, como el repositorio de TypeScript en GitHub, ofrecen objetivos ideales para la traducción iterativa por parte de agentes de programación. Este enfoque puede generar rápidamente ports funcionales, como se ha visto con proyectos como tsrs; para más información, lea Introducing tsrs: a Port of TypeScript to Rust.
Sin embargo, superar las pruebas existentes no garantiza automáticamente una compatibilidad completa ni identifica diferencias sutiles de comportamiento. Aunque el port impulsado por IA es potente, la validación rigurosa dirigida por personas sigue siendo crucial para garantizar la paridad funcional y mantener la integridad de la implementación original. La velocidad es innegable, pero la estabilidad a largo plazo requiere un examen cuidadoso.
¿Te está gustando? Recibe uno así en tu bandeja cada mañana.
un correo al día · date de baja en dos clics · sin rastreadores de terceros
Ganar un benchmark no equivale a un reemplazo directo
Ganar un benchmark no equivale a un reemplazo directo. Antes de adoptar un port en Rust, los desarrolladores deben verificar varios factores críticos. Es fundamental evaluar la paridad del lenguaje y de la API del compilador con la implementación oficial de TypeScript, garantizando una integración fluida con las herramientas de edición, los sistemas de compilación y la salida de diagnósticos existentes. El comportamiento en sus propios proyectos es la prueba definitiva.
Realice una prueba local justa, comparando opciones de compilador idénticas en la versión oficial y en la de Rust. Incluya ejecuciones de compilación limpia e incremental, supervise el uso de memoria y evalúe el rendimiento en cargas de trabajo de CI representativas, no solo en unas pocas ejecuciones cronometradas. Este enfoque integral revela la verdadera preparación para producción.
Los impresionantes resultados de este port en Rust, en particular su velocidad 3 veces superior a la de Go, elevan el listón del rendimiento de los compiladores. Estas implementaciones alternativas presionan al ecosistema en general para que innove y muestran cómo el código nativo optimizado puede mejorar drásticamente la experiencia del desarrollador. Aunque las cifras son convincentes, la preparación para producción depende de la confianza y de la compatibilidad total.
Ignore este port en Rust si su principal preocupación es la estabilidad inmediata y la paridad total de funciones con el compilador oficial de TypeScript de Microsoft. Hasta que maduren la integración completa y el soporte del ecosistema, la versión en Rust que ganó el benchmark sigue siendo una prueba de concepto atractiva, no un reemplazo directo para la mayoría de los entornos de producción.
Preguntas frecuentes
¿El compilador de TypeScript de Microsoft está ahora escrito en Rust?
No. El video compara un port independiente en Rust con el compilador existente en JavaScript y la implementación en Go de Microsoft.
¿Cuánto más rápido fue el port en Rust en las pruebas del video?
En el repositorio de TypeScript evaluado, fue en promedio unas tres veces más rápido que Go y unas 24 veces más rápido que JavaScript.
¿Qué evaluó el benchmark?
Midió cuatro casos en el repositorio de TypeScript: tipos válidos, un error de tipo simple, errores en cascada de tipos básicos y tipos con recursión profunda.
¿Deberían los equipos reemplazar su compilador de TypeScript por el port en Rust?
No solo con base en estos resultados. Los equipos deben verificar la compatibilidad, la compatibilidad con las herramientas y el rendimiento en sus propios proyectos antes de cambiar.

