24.8 C
Colombia
lunes, julio 7, 2025

Un complejo mecanografiado de 10x más rápido – TypeScript


Hoy estoy emocionado de anunciar los próximos pasos que estamos tomando para mejorar radicalmente el rendimiento de los mecanografiados.

https://www.youtube.com/watch?v=pnlq-evld70

La propuesta de valor central de TypeScript es una excelente experiencia de desarrollador. A medida que su base de código crece, también lo hace el valor de TypeScript en sí, pero en muchos casos TypeScript no ha podido escalar a las bases de código más grandes. Los desarrolladores que trabajan en grandes proyectos pueden experimentar largos tiempos de carga y verificación, y tienen que elegir entre el tiempo de inicio del editor razonable o obtener una vista completa de su código fuente. Sabemos que los desarrolladores aman cuando pueden cambiar el nombre de las variables con confianza, encontrar todas las referencias a una función explicit, navegar fácilmente por su base de código y hacer todas esas cosas sin demora. Las nuevas experiencias impulsadas por la IA se benefician de grandes ventanas de información semántica que deben estar disponibles con restricciones de latencia más estrictas. También queremos construcciones de línea de comandos rápidas para validar que toda su base de código está en buena forma.

Para cumplir con esos objetivos, hemos comenzado a trabajar en un puerto nativo del compilador y herramientas de TypeScript. La implementación nativa Mejorar drásticamente el inicio del editor, reducir la mayoría de los tiempos de construcción en 10 veces y reducir sustancialmente el uso de la memoria. Al portar la base de código precise, esperamos poder obtener una vista previa de una implementación nativa de tsc Capaz de una tecnología de línea de comandos a mediados de 2025, con una solución completa para las compilaciones de proyectos y un servicio de idioma para fin de año.

Puede construir y ejecutar el código GO desde nuestro nuevo repositorio de trabajoque se ofrece bajo la misma licencia que la base de código TypeScript existente. Consulte el ReadMe para obtener instrucciones sobre cómo construir y ejecutar tsc y el servidor de idiomas, y para ver un resumen de lo que se implementa hasta ahora. Publicaremos actualizaciones periódicas a medida que haya una nueva funcionalidad disponible para las pruebas.

¿Cuánto más rápido?

Nuestra implementación nativa ya es capaz de cargar muchos proyectos mecanografiados populares, incluidos el compilador de mecanografiado en sí. Aquí hay momentos para correr tsc En algunas bases de código populares en GitHub de diferentes tamaños:

Base de código Tamaño (LOC) Precise Nativo Aceleración
VS Código 1,505,000 77.8s 7.5s 10.4x
Dramaturgo 356,000 11.1s 1.1s 10.1x
Tormenta de tormenta 270,000 17.5s 1.3S 13.5x
fechor 104,000 6.5s 0.7S 9.5x
TRPC (servidor + cliente) 18,000 5.5s 0.6s 9.1x
rxjs (observable) 2,100 1.1s 0.1s 11.0x

Si bien aún no estamos completos, estos números son representativos de la mejora del rendimiento del orden de magnitud que verá verificar la mayoría de las bases de código.

Estamos increíblemente entusiasmados con las oportunidades que crea este impulso de velocidad masivo. Las características que una vez parecieron fuera de alcance ahora están al alcance. Este puerto nativo podrá proporcionar listados de errores instantáneos e integrales en un proyecto completo, admitir refactorizaciones más avanzadas y permitir concepts más profundas que anteriormente eran demasiado caras de calcular. Esta nueva base va más allá de la experiencia de desarrollador de hoy y permitirá que la próxima generación de herramientas de IA mejore el desarrollo, alimentando nuevas herramientas que aprenderán, adaptarán y mejorarán la experiencia de codificación.

Velocidad del editor

La mayoría del tiempo de desarrollador se pasa en los editores, y es donde el rendimiento es más importante. Queremos que los editores cargan grandes proyectos rápidamente y respondan rápidamente en todas las situaciones. Los editores modernos como Visible Studio y Visible Studio Code tienen un excelente rendimiento siempre que los servicios de lenguaje subyacentes también sean rápidos. Con nuestra implementación nativa, podremos proporcionar experiencias de editor increíblemente rápidas.

Nuevamente utilizando la base de código de código de Visible Studio como un punto de referencia, el momento precise para cargar todo el proyecto en el editor en una computadora rápida es de aproximadamente 9.6 segundos. Esto cae a aproximadamente 1.2 segundos con el servicio de idioma nativo, un 8x Mejora en el tiempo de carga del proyecto En los escenarios del editor. A lo que esto se traduce es una experiencia de trabajo más rápida desde el momento en que abre su editor a su primer Keystroke en cualquier base de código TypeScript. Esperamos que todos los proyectos vean este nivel de mejora en el tiempo de carga.

El uso normal de la memoria también parece ser aproximadamente la mitad de la implementación precise, aunque aún no hemos investigado activamente la optimización de esto y esperamos realizar nuevas mejoras. La capacidad de respuesta del editor para todas las operaciones de servicio de idiomas (incluidas las listas de finalización, la información rápida, la definición y encontrar todas las referencias) también verá ganancias de velocidad significativas. También nos moveremos al Protocolo del servidor de idiomas (LSP), un elemento de trabajo de infraestructura de larga knowledge para alinear mejor nuestra implementación con otros idiomas.

Hoja de ruta de versiones

Nuestra versión de TypeScript más reciente fue TypeScript 5.8, con TypeScript 5.9 próximamente. La base de código basada en JS continuará desarrollándose en la serie 6.x, y TypeScript 6.0 introducirá algunas deprecaciones y rompió cambios para alinearse con la próxima base de código nativo.

Cuando la base de código nativa haya alcanzado la paridad suficiente con el mecanografiado precise, lo lanzaremos como Mecanografiado 7.0. Esto todavía está en desarrollo y anunciaremos estabilidad y hitos con hitos a medida que ocurran.

En aras de la claridad, nos referiremos simplemente como TypeScript 6 (JS) y TypeScript 7 (nativo), ya que esta será la nomenclatura para el futuro previsible. También puede vernos referirnos a “Strada” (el nombre de código TypeScript authentic) y “Corsa” (el nombre en código para este esfuerzo) en discusiones internas o comentarios de código.

Si bien algunos proyectos pueden cambiar a TypeScript 7 tras la versión, otros pueden depender de ciertas características de API, configuraciones heredadas u otras restricciones que requieran el uso de TypeScript 6. Reconocer el papel crítico de TypeScript en el ecosistema de desarrollo JS, aún mantendremos la base de código JS en la línea 6.x hasta TypeScript 7+ alcanza la madurez y la adopción suficientes suficientes.

Nuestro objetivo a largo plazo es mantener estas versiones lo más estrechamente alineadas como sea posible para que pueda actualizar a TypeScript 7 tan pronto como cumpla con sus requisitos, o recurrir a TypeScript 6 si es necesario.

Siguientes pasos

En los próximos meses compartiremos más sobre este esfuerzo emocionante, incluida la mirada más profunda en el rendimiento, una nueva API de compiladores, LSP y más. Hemos escrito algunos Preguntas frecuentes en el repositorio de GitHub para abordar algunas preguntas que esperamos que pueda tener. También te invitamos a unirte a nosotros para una AMA en el Discordia de la comunidad mecanografiada en 10 am PDT | 5 pm UTC el 13 de marzo.

Una mejora del rendimiento de 10x representa un salto masivo en la experiencia de desarrollo mecanografiado y JavaScript, por lo que esperamos que esté tan entusiasmado como nosotros para este esfuerzo.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles