← Últimos artículos
💻 computer science

Optimizing an IDE for an Evolving Language Ecosystem

Este artículo presenta una estrategia para construir un IDE de alto rendimiento para el lenguaje de contratos inteligentes Move en evolución, aprovechando el Protocolo de Servidor de Lenguaje y el compilador central existente, al tiempo que detalla las optimizaciones de infraestructura necesarias y las lecciones aprendidas para apoyar el crecimiento del ecosistema.

Autores originales: Adam Welc, Todd Nowacki, Dario Russi, Cameron Swords, Timothy A. K. Zakian

Publicado 2026-05-19
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Adam Welc, Todd Nowacki, Dario Russi, Cameron Swords, Timothy A. K. Zakian

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que estás construyendo una ciudad completamente nueva desde cero. Tienes los planos de los edificios (el lenguaje de programación) y el equipo de construcción (el compilador). Pero antes de que alguien pueda realmente vivir allí o construir algo útil, necesitan un asistente superinteligente para ayudarles a navegar por las calles, encontrar direcciones específicas y corregir errores mientras construyen. En el mundo de la programación, este asistente se llama un IDE (Entorno de Desarrollo Integrado).

El artículo del equipo de Mysten Labs describe cómo construyeron este "asistente superinteligente" para una nueva ciudad llamada Move (un lenguaje para contratos inteligentes). Esta es la historia de cómo lo hicieron, utilizando analogías simples.

El Gran Dilema: ¿Construir un motor nuevo o usar el existente?

Cuando necesitas un motor de coche para alimentar a tu nuevo asistente, tienes dos opciones:

  1. Construir un motor completamente nuevo desde cero solo para el asistente. Esto es como contratar a un mecánico especial para construir un motor personalizado que solo haga una cosa: ayudar al conductor. Podría ser perfecto para el trabajo, pero lleva mucho tiempo y cuesta mucho dinero.
  2. Usar el motor que ya tienes. Los constructores de la ciudad ya tenían un motor masivo y potente (el compilador) diseñado para convertir planos en edificios terminados.

El equipo eligió la Opción 2. Decidieron conectar a su asistente al motor existente de la ciudad.

  • El Riesgo: El motor fue construido para terminar edificios, no para ayudar a las personas mientras aún están dibujando los planos. Podría ser demasiado lento o demasiado pesado.
  • La Recompensa: Dado que el motor ya existía, podían poner el asistente en funcionamiento casi de inmediato, en lugar de esperar años para construir uno nuevo.

El Problema: El motor era demasiado lento

Al principio, el asistente funcionaba, pero era lento. Imagina pedirle a un bibliotecario que encuentre un libro. Si el bibliotecario tiene que caminar hasta el fondo de la biblioteca, revisar cada estante individual y leer cada libro de portada a portada solo para encontrar una página, esperarás mucho tiempo.

A medida que la ciudad de Move crecía, la biblioteca se hacía más grande. Cada vez que un desarrollador hacía un cambio minúsculo en su código, el asistente tenía que volver a leer toda la biblioteca (el código y todas sus dependencias) desde cero. Esto tardaba más de un segundo, lo que se sentía como una eternidad para un desarrollador.

Las Soluciones: Cómo aceleraron las cosas

El equipo se dio cuenta de que tenían que optimizar el motor sin reconstruirlo. Aplicaron tres "ajustes" principales:

1. La biblioteca de "Lectura Previa" (Precompilación de dependencias)

El Problema: El asistente seguía releyendo los libros de la biblioteca estándar (como diccionarios o guías de matemáticas) cada vez que un desarrollador cambiaba su propia historia.
La Solución: Se dieron cuenta: "¡Oye, nadie cambia el diccionario!". Así que crearon un estante de lectura previa. Leyeron los libros de la biblioteca estándar una vez, anotaron las notas importantes y los colocaron en un estante especial. Ahora, cuando el asistente necesita verificar una palabra, solo toma las notas del estante en lugar de caminar hasta el fondo de la biblioteca.

  • Resultado: Esto redujo el tiempo de espera de casi un segundo a una fracción de milisegundo.

2. La estrategia de "Revisión Puntual" (Compilación incremental)

El Problema: Incluso con el estante de lectura previa, si un desarrollador cambiaba una historia de 100 páginas, el asistente aún intentaba releer la historia completa, incluso las partes que no habían cambiado.
La Solución: Enseñaron al asistente a ser perezoso (en el buen sentido). Si un desarrollador solo cambiaba la página 50, el asistente solo releía la página 50. Para las otras 99 páginas, simplemente decía: "Ya conozco esta parte, no ha cambiado".

  • Resultado: Esto hizo que el asistente se sintiera instantáneo, incluso en bases de código enormes.

3. La "Mochila Compartida" (Optimización de memoria)

El Problema: El asistente llevaba una mochila enorme. Era tan pesada que si un desarrollador abría tres proyectos diferentes, la mochila del asistente se volvía demasiado pesada para llevar, causando que la computadora se ralentizara o se bloqueara. Llevaba cada detalle de cada libro, incluso los detalles que el asistente no necesitaba ver en ese momento.
La Solución: Reorganizaron la mochila. Tiran los detalles pesados e innecesarios y solo guardan las notas esenciales. Además, se dieron cuenta de que si tres desarrolladores trabajaban en proyectos que usaban el mismo diccionario, no necesitaban tres diccionarios separados. Compartían un diccionario entre los tres proyectos.

  • Resultado: La mochila se volvió mucho más ligera, permitiendo al asistente manejar múltiples proyectos a la vez sin sudar.

Las Lecciones Aprendidas

El artículo concluye con algunas "reglas empíricas" para cualquiera que intente construir un asistente similar para un nuevo lenguaje:

  • No construyas todo a la vez: No necesitas el motor perfecto el primer día. Comienza con lo que tienes y ajústalo a medida que la ciudad crece.
  • Espera almacenar cosas: Siempre planea guardar tu trabajo (como el estante de lectura previa) para no tener que hacerlo dos veces.
  • Cuida tu peso: Ten cuidado con la cantidad de "cosas" (memoria) que llevas. Solo porque puedes llevar una mochila pesada no significa que debas.
  • Sé resiliente: Si un desarrollador comete un error tipográfico, el asistente no debe abandonar y rendirse. Debe decir: "Veo un error, pero seguiré ayudándote con el resto de la oración".

La Conclusión

El equipo convirtió con éxito un motor de construcción lento y pesado en un asistente rápido y ágil siendo inteligentes sobre cómo usaron la maquinaria existente. No construyeron un motor nuevo; simplemente hicieron que el antiguo funcionara mucho más eficientemente. Esto permitió a los desarrolladores construir sus ciudades de contratos inteligentes rápidamente y sin frustración.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →