Este es nuestro último tema, el rendimiento como camino hacia la innovación. Cuando trabajaba en la infraestructura de JavaScript, siempre me preguntaba por qué necesitábamos compilar JavaScript y publicarlo en SDNs. Disfrutamos de las últimas características de JavaScript, pero necesitan ser transpiladas a una versión más antigua y luego enviadas al usuario, lo que resulta en un código inflado. Y luego, sitios web lentos. Es donde sacrificamos rendimiento por el último grupo de usuarios.
Hemos estado haciendo esto desde el principio porque el rendimiento es realmente el elefante en la habitación. Debido a que la transpilación es lenta, la modificación es lenta, empujar a CDN y servir archivos también. Todo es un poco lento. Cuando Jared Sumner creó BAN, su objetivo de proyecto era crear un empaquetador, no un tiempo de ejecución como el que estamos viendo ahora. Se dio cuenta de forma independiente de que una vez que se alcanza el rendimiento máximo, podemos simplemente empaquetar bajo demanda con una capa de almacenamiento en caché. De esta manera, los usuarios que utilizan navegadores más nuevos obtendrán archivos más pequeños, lo que lleva a sitios web más rápidos.
Y esta es una captura de pantalla de las pruebas de rendimiento para nuestros minificadores de JavaScript actuales. Tenemos SWC, ESBuild y dos minificadores escritos en Go, el tercero y el quinto. Y uno escrito en Rust, el primero SWC. Y luego, cuando estás escribiendo JavaScript, el segundo, AgilifyJS, entra en el número seis. Lo interesante es que la actual era de herramientas escritas en Rust y Go puede minificar un megabyte de archivo. Pero las herramientas de la era pasada no pueden. Para muchos códigos base más grandes y aplicaciones web más grandes, la cantidad de código que enviamos al usuario es aún mayor. A medida que nuestros códigos base crecen cada vez más, especialmente para aplicaciones web grandes, algunas de las herramientas existentes se vuelven realmente lentas, simplemente se quedan sin memoria. Lo que es realmente interesante, sin embargo, es el compilador de cierre de Google en la lista. En realidad tiene un modo avanzado, que probablemente pueda superar a otras herramientas en tamaño de compresión. Pero desafortunadamente, solo funciona en la infraestructura de Google y nadie más puede usarlo porque es realmente, realmente lento. Realiza una gran cantidad de pases ASD en Java. Sin embargo, no podemos culparlos. El compilador de cierre de Google fue creado tan temprano y Java era el único lenguaje admitido internamente.
Entonces, si OXC tiene la oportunidad, todo nuestro trabajo actual nos llevará a crear nuestro propio minificador, que apuntará a tener el mejor tamaño de compresión similar al compilador de cierre de Google con un rendimiento más pequeño que SWC y ESP. Así que OXC fue mi proyecto independiente durante los últimos dos años, pero ya no lo será. El proyecto ahora tiene la misión de admitir completamente a Rolldown founder y buscar soluciones mejores y más nuevas para la infraestructura de JavaScript con Yzero, la empresa.
Y si tienes alguna pregunta, no dudes en visitar nuestro sitio web o contactarme en nuestro Discord o en mi Twitter. Gracias por escuchar.
Comments