Skip to content
research

Rust acaba de hacer que la verificación de tipos de TypeScript sea 3 veces más rápida

Un benchmark de compiladores ha reavivado las guerras entre lenguajes, y los agentes de IA ayudaron a construir al aspirante en cuestión de semanas. Pero la velocidad pura es solo una parte de la historia cuando una herramienta aún tiene que encajar en los flujos de trabajo reales de los desarrolladores.

Stork editorial team
Rust acaba de hacer que la verificación de tipos de TypeScript sea 3 veces más rápida

La lentitud de TypeScript que se oculta a plena vista

El desarrollo con TypeScript implica dos procesos distintos: la transpilación y la verificación semántica de tipos. Herramientas de compilación rápidas como esbuild o Vite eliminan rápidamente la sintaxis de TypeScript y la convierten en JavaScript ejecutable. Este paso es rápido y a menudo toma milisegundos.

El cuello de botella aparece durante la verificación semántica de tipos, que comprueba la validez del código. Este proceso, crucial para la retroalimentación del editor y los pipelines de CI, puede tardar minutos en proyectos grandes. Los desarrolladores perciben este retraso como una notificación de errores lenta en los IDE o como tiempos de ejecución de CI más largos.

Microsoft abordó oficialmente este problema con un port en Go del compilador de TypeScript, que ofrece una mejora de velocidad de 8 a 12 veces frente al motor heredado en JavaScript. Esta versión en Go, parte de TypeScript 7.0, redujo de forma significativa los tiempos de verificación; por ejemplo, la verificación de tipos de VS Code pasó de 125,7 segundos a 10,6 segundos.

Recientemente surgió una implementación en Rust impulsada por la comunidad, que ofrece un nuevo contendiente. Desarrollado con rapidez por Cloudflare y el proyecto Oxc con ayuda de agentes de IA, este port en Rust del código base en Go afirma ser casi tres veces más rápido que la versión oficial en Go. Aunque todavía no está integrado en todo el ecosistema, supera más del 99,9% de las pruebas de conformidad de TypeScript, lo que demuestra su potencial.

El benchmark: 0,3 segundos frente a 0,7

Para cuantificar la mejora de velocidad, un benchmark enfrentó el compilador heredado en JavaScript con los nuevos ports en Go y Rust. La prueba utilizó el repositorio de TypeScript oficial, un código base considerable que comprende 793 archivos y aproximadamente 380.000 líneas de código. Cuatro escenarios evaluaron el rendimiento: código perfectamente válido, un único error de tipo, un fallo en cascada causado por un tipo central roto y una recursión profunda.

En estos diversos escenarios, los resultados fueron sorprendentes. El compilador de JavaScript fue sistemáticamente el más lento, con tiempos de entre 6,6 y 13 segundos. El port en Go mejoró esto de forma notable, completando las verificaciones en entre 0,6 y 2,2 segundos. Sin embargo, la versión en Rust demostró un rendimiento superior, al terminar en apenas entre 0,2 y 0,5 segundos.

Para poner en perspectiva las cifras principales, el compilador en Rust fue en promedio aproximadamente 24 veces más rápido que la implementación original en JavaScript. Más impresionante aún, fue casi tres veces más rápido que el port en Go en esta prueba específica. Estos resultados ponen de relieve el potencial de mejoras sustanciales en la experiencia del desarrollador.

Es fundamental recordar que los resultados de los benchmarks pueden variar. Factores como las especificaciones del hardware, la estructura del proyecto, las versiones concretas del compilador y la metodología exacta del benchmark pueden influir en el rendimiento. No obstante, la mejora de velocidad constante y espectacular observada con el port en Rust es un avance significativo para el ecosistema de TypeScript.

Los agentes de IA copiaron un diseño perfeccionado con mucho esfuerzo

Cabe destacar que el port en Rust no surgió de un ingeniero humano que diseñara un nuevo sistema de tipos. En su lugar, un ingeniero dirigió a agentes de IA, principalmente Claude Opus 3.5, para traducir a Rust, función por función, el compilador existente de Microsoft en Go. Este enfoque se basó en una traducción mecánica, más que creativa.

Esta estrategia de traducción aprovechó la extensa suite de conformidad de TypeScript, que consta de más de 13.000 casos de prueba. Cada caso de prueba especifica los errores de diagnóstico exactos que debería informar un compilador conforme. Los agentes portaban una función, ejecutaban las pruebas correspondientes, depuraban cualquier discrepancia y luego pasaban a la siguiente función.

Superar todas estas pruebas, como lo hace ahora la versión en Rust, confirma su compatibilidad y su capacidad para producir resultados de verificación de tipos idénticos a los del compilador oficial en Go. Esto permitió una iteración rápida y verificable en solo tres semanas de desarrollo. Para más información sobre el port oficial en Go, consulte A 10x Faster TypeScript - Microsoft Developer Blogs.

Sin embargo, superar las pruebas de conformidad verifica principalmente la corrección de los resultados. No garantiza por sí mismo un rendimiento equivalente en todos los tipos de proyecto, una integración fluida con el editor ni que esté listo de inmediato para producción en cualquier base de código. Aunque los benchmarks presentados en el vídeo son convincentes, será crucial seguir integrándolo y probarlo en entornos reales para consolidar su adopción más amplia.

¿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

La velocidad entusiasma; la adopción es la verdadera prueba

Las mejoras de rendimiento de Rust son emocionantes, pero su propuesta con WebAssembly ofrece una razón convincente para adoptarlo. Cloudflare, por ejemplo, pretende ejecutar herramientas para desarrolladores directamente en entornos de navegador y de edge. Rust se compila a WebAssembly sin incluir un recolector de basura, a diferencia de Go, lo que lo hace ideal para una ejecución ligera y aislada en un entorno controlado (sandbox).

La implementación en Go del compilador de TypeScript de Microsoft sigue siendo la referencia oficial y da soporte a TypeScript 7.0 con mejoras de velocidad significativas. El port en Rust, en cambio, se está desarrollando dentro del proyecto Oxc, una cadena de herramientas en Rust de los creadores de Vite. Esto lo posiciona para aplicaciones futuras como el linting con detección de tipos en Oxc Lint, aprovechando su velocidad para ofrecer retroalimentación en tiempo real.

Considere el benchmark como una señal prometedora, no como una garantía universal. Verifique la compatibilidad y el soporte de herramientas para la pila específica de su proyecto antes de integrarlo. Observe si estas optimizaciones e integraciones llegan a los flujos de trabajo cotidianos y reducen en la práctica los tiempos de ciclo de los desarrolladores. La verdadera prueba para el port en Rust será su recorrido desde un benchmark impresionante hasta una utilidad práctica y generalizada.

Preguntas frecuentes

¿Es el compilador de TypeScript en Rust una versión oficial de Microsoft?

No. Es un port de Rust impulsado por la comunidad y asociado al proyecto Oxc; el port nativo oficial del compilador de Microsoft está escrito en Go.

¿Cuánto más rápido fue el compilador en Rust en el benchmark del vídeo?

En la prueba del repositorio de TypeScript, fue en promedio aproximadamente 24 veces más rápido que el compilador de JavaScript y casi tres veces más rápido que el port en Go.

¿Por qué crear un compilador de TypeScript en Rust?

La ausencia de un recolector de basura en Rust puede hacer atractivo el empaquetado para WebAssembly, mientras que el port también explora optimizaciones de rendimiento y de memoria.

¿Fue el port en Rust escrito por IA?

Agentes de IA realizaron buena parte del port mecánico bajo la dirección de un ingeniero, usando el compilador de Microsoft y las pruebas de conformidad de TypeScript como guías.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

Para builders

Esta página está trabajando para la herramienta de otro.

La leen los agentes de IA. Aterrizan compradores. Responde en ocho idiomas y vía MCP. Tu herramienta puede tener una igual — publicada en 24 horas.