El Estado de las Herramientas de React

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Slides
Rate this content

Las herramientas de construcción emergentes como Bun, ESBuild, SWC y Rome transformarán la forma en que trabajamos con React en el futuro. Veamos su estado actual, lo que se necesita para adoptarlas y predigamos cómo evolucionará el panorama.

This talk has been presented at React Day Berlin 2022, check out the latest edition of this React Conference.

FAQ

ReMotion es un framework que permite crear videos utilizando React. Permite escribir componentes, animarlos y crear videos MP4 reales, así como desarrollar aplicaciones que utilicen video programático.

Jonny Burger organiza las herramientas de JavaScript en varias categorías como transpiladores, bundlers, runtimes, linters, test runners, type checkers, formatters y package managers, y recomienda usar una herramienta de cada categoría.

Jonny Burger menciona que Babel, aunque es flexible y tiene muchas transformaciones, ha sido criticado por su velocidad. Recomienda su uso solo en proyectos de React Native donde sigue siendo fundamental.

SWC es más estable y mucho más rápido que Babel, convirtiéndose en el nuevo valor por defecto en frameworks como Next.js. Además, cuenta con un gran respaldo de la industria, incluido Vercel.

Jonny Burger critica a Sucrase por no apuntar a cumplir completamente con las especificaciones y ser más práctico. Menciona que es experimental y puede generar archivos JavaScript inválidos si se le da código incorrecto, y por ello, no lo recomienda.

Un transpilador convierte un archivo individual con una sintaxis que no puede ejecutarse directamente en un navegador a una que sí puede, mientras que un bundler toma varios archivos transpilados y los agrupa en uno solo para optimizar la ejecución.

Jonny recomienda usar TypeScript especialmente para generar archivos de definición .d.ts y para bibliotecas o aplicaciones de backend, pero no necesariamente como transpilador en stacks de frontend como webpack.

Vite es un bundler moderno que, durante el desarrollo, no realiza empaquetado sino que sirve directamente todos los archivos JavaScript al navegador. Es utilizado por su rapidez y robustez, especialmente al utilizar módulos ES.

Jonny Burger
Jonny Burger
29 min
02 Dec, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla discute más de 20 herramientas de JavaScript comúnmente utilizadas por los desarrolladores, incluyendo transpiladores y bundlers. Se destacan los pros y los contras de varias herramientas como Sucrase, Babel, SWC y ESBuild. También se menciona la importancia de TypeScript, los linters como eslint y la aparición de nuevas herramientas como Rome. La charla profundiza en el futuro de JavaScript, los desafíos de agrupar bibliotecas de UI y la era corporativa de las bibliotecas de JavaScript respaldadas por empresas.
Available in English: The State of React Tooling

1. Introducción a las herramientas de JavaScript

Short description:

¡Hola Berlín! Mi nombre es Jonny Burger. Soy el mantenedor de ReMotion, un framework para hacer videos en React. Hablaré sobre más de 20 herramientas de JavaScript comúnmente utilizadas por los desarrolladores, organizadas en diferentes categorías. Vamos a repasarlas y daré mi opinión imparcial. Babel, el transpilador original, sigue siendo fundamental para React Native. SWC es el nuevo valor por defecto en Next.js y cuenta con el respaldo de la industria. ESBuild, el valor por defecto en Vite, es rápido y robusto, con un gran respaldo de la industria.

¡Hola Berlín! Espero que todos estén bien. Mi nombre es Jonny Burger. Soy de un lugar llamado Zurich, Suiza, lo que significa que puedo entender a los alemanes, mientras que los alemanes no pueden entenderme. Así que estoy muy feliz de tener este superpoder y estar aquí en Berlín.

Y mi charla va a ser... espera, primero déjame hablarte del proyecto en el que estoy trabajando. Soy el mantenedor de ReMotion, que es un framework que te permite hacer videos en React. Puedes escribir el componente, animarlo, crear videos MP4 reales e incluso crear aplicaciones que aprovechen el video programático.

Y para ese framework, tengo que usar muchas herramientas diferentes. Hay tantas herramientas por ahí y estoy muy confundido. Y si alguien pudiera ayudarme a navegar, alguien imparcial, decirme para qué sirven todas estas herramientas, porque una nueva sale cada semana, bueno, te tengo cubierto. Estas son más de 20 herramientas de JavaScript que los desarrolladores usan comúnmente y las he organizado en transpiladores, bundlers, runtimes, linters, test runners, type checkers, formatters y package managers. Sé que es mucho y debemos reconocer que no tiene sentido que uno conozca todas las herramientas de una vez. Pero creo que en general, deberías usar una herramienta de cada categoría.

Voy a repasar todas las herramientas en 20 minutos para contarte un poco sobre ellas y darte una opinión imparcial. Va muy rápido. Ok, Babel, es el transpilador original que originalmente se llamaba 6to5. Ha tenido un buen recorrido durante 10 años. Es el más flexible. Tiene la mayoría de las transformaciones. Pero la gente se ha quejado de su velocidad durante un tiempo. Así que han surgido nuevos en el mientras tanto y no recomendaría que lo uses para un nuevo proyecto, excepto para React Native, donde todavía es fundamental.

SWC es el niño de Rust en el bloque, y es el nuevo valor por defecto en Next.js. También cuenta con un gran respaldo de la industria con Vercel, de quien acabas de escuchar. Así que no puedes equivocarte si lo usas. Es muy estable y mucho más rápido que Babel.

ESBuild es un transpilador escrito en Go y es el valor por defecto en Vite. Así que si usas Vite, estás utilizando ESBuild en el fondo para empaquetar tu aplicación de producción. Y Vite también es muy rápido y muy robusto. Tiene un gran respaldo de la industria, especialmente porque Vite lo utiliza.

2. Sucrase: Un Transpilador Rápido y Experimental

Short description:

Sucrase es un transpilador menos conocido que está escrito en TypeScript y es el más rápido. Sin embargo, tiene algunos problemas prácticos y no cumple completamente con las especificaciones. Se describe a sí mismo como experimental y divertido, pero puede producir archivos JavaScript inválidos.

Y también puedo recomendarte que lo uses. Ahora vamos a hablar de uno que es un poco menos conocido. Se llama Sucrase, que en realidad es el transpilador más rápido. Y está escrito en TypeScript. Así que podrías pensar que es más lento que los compiladores que están escritos en Go o en Rust. Pero no, en realidad no importa. Y compila muy rápido. Pero también tiene algunos problemas que me impiden recomendártelo. No tiene como objetivo cumplir completamente con las especificaciones, sino que es más práctico. Se describe a sí mismo como experimental y divertido, lo cual suena realmente divertido. Y una cosa interesante es que si le das código inválido, podría generar un archivo JavaScript inválido, lo cual no es lo que probablemente quieres. Y además, no tiene realmente un logotipo como herramienta de JavaScript. Así que, desafortunadamente, no puedo recomendártelo.

3. Transpiladores y Bundlers

Short description:

TypeScript se puede utilizar como un transpilador para generar archivos de definición .d.ts. Los frameworks o bundlers a menudo toman la decisión de qué transpilador utilizar. Webpack es el bundler más popular, pero Rollup es más rápido y prioriza los módulos ES. Sin embargo, no tiene reemplazo de módulo en caliente. Vite es un bundler popular que sirve archivos JavaScript directamente al navegador sin empaquetarlos. Parcel es un bundler más conservador que busca reducir la configuración y proporciona valores predeterminados rápidos como el transpilador SWC. Snowpack es el siguiente.

TypeScript también es un transpilador, si lo piensas, porque convierte archivos TS en archivos JS. Y no lo recomendaría en una pila de front-end usarlo como un transpilador, por ejemplo, en webpack. Pero si también necesitas generar archivos de definición .d.ts de TypeScript, básicamente necesitas usar TypeScript porque es la única opción.

Entonces, para bibliotecas o aplicaciones de back-end, te recomiendo usar TypeScript como el transpilador. Entonces, ¿cuál deberías elegir? Depende, pero en realidad, muchas veces no puedes elegir. Tu framework o tu bundler toma esa decisión por ti. Así que es bueno saber qué opciones hay. Es más responsabilidad de los desarrolladores de frameworks decidir cuál es el correcto.

Ahora, hablemos de la diferencia entre un transpilador y un bundler. Mientras que un transpilador convierte un solo archivo que tiene una sintaxis que no se puede ejecutar en un runtime o en un navegador en algo que se puede ejecutar, el bundler toma muchos de los archivos transpilados y los agrupa en uno solo. Y el más popular, déjame ver otra vez, fui un poco rápido. Estoy tratando de ir rápido. Webpack, por supuesto, es el estándar de oro y se utiliza en todos los principales frameworks hasta que Vite apareció y ahora también está reemplazando a NexGIS. Pero debido a esto y a la gran cantidad de opciones que tiene, por supuesto, es mucho recomendado.

Bien. Llegué a la diapositiva correcta sobre Rollup, que prioriza los módulos ES, muy moderno y también mucho más rápido. Pero la cosa es que no admite el reemplazo de módulo en caliente. Entonces, en desarrollo, no podrías guardar y actualizar tu componente React. Por lo tanto, no te recomendaría usarlo por sí solo. Sin embargo, es una parte esencial de Vite. Vite es un bundler muy popular en la actualidad que durante el desarrollo no hace ningún empaquetado sino que hace algo llamado desempaquetado. Simplemente sirve todos los archivos JavaScript directamente al navegador sin hacer nada y eso solo funciona porque utiliza módulos ES. Como sabes, aún no estamos completamente listos como ecosistema de JavaScript para usar solo módulos ES. Vite o Rollup pueden generar cierta fricción. También está Parcel, que es un poco más conservador, se acerca a las ideas de Webpack, las que funcionan. Pero busca o quiere que uses menos configuración, que sea más fácil usar un bundler. Y tiene algunos valores predeterminados muy buenos como el transpilador SWC que, de serie, jaja, lo hace más rápido que Webpack. No es muy popular, supongo, porque no está muy por delante de Webpack y la gente tiene miedo de migrar. Pero definitivamente lo recomiendo. A continuación está Snowpack.

4. JavaScript Tools Continued

Short description:

Vamos a saltarnos este. TurboPack, el sucesor de Webpack, cuenta con un gran respaldo de Vercel, pero carece de instrucciones de instalación y documentación completa. Dano, un tiempo de ejecución más rápido y seguro que admite TypeScript, no ha tenido una adopción significativa debido a problemas de compatibilidad. Sin embargo, Bunn, un nuevo tiempo de ejecución, tiene como objetivo ser más rápido que Node y compatible, ofreciendo la posibilidad de ejecutar código existente más rápido. En el ámbito de los linters, eslint se destaca con su extenso conjunto de reglas, incluidos los preajustes específicos del framework. Es importante destacar que eslint se someterá a una reescritura completa sin TypeScript.

Es posible que hayas oído hablar de ello, pero ya lo han descontinuado y ahora recomiendan Wheat.

De acuerdo. TurboPack, habrá una charla a las 2 p.m. que te recomiendo escuchar y revisar. Será el sucesor de Webpack creado por el creador de Webpack y contará con un gran respaldo de Vercel. Pero no hay instrucciones de instalación y solo 10 páginas de documentación, así que por ahora lo consideraremos solo un montón de hype. Pero veamos qué tiene que decir Tobias al respecto.

De acuerdo. Pasemos al tiempo de ejecución. Y, por supuesto, todos están usando Node.js. Creo que el 99% de ustedes está usando Node.js. Me sorprendería mucho si no fuera así. Millones de módulos de MPM es lo que nos permite construir cosas poderosas, negocios de miles de millones de dólares porque el ecosistema es tan bueno. Ahora hay algo nuevo, Dano, que supongo que técnicamente es mejor, ¿verdad? Es un poco más rápido, un poco más sensato, un poco más seguro e incluso admite TypeScript de forma nativa. Pero ha pasado un tiempo desde que salió, y siento que la adopción no ha sido realmente tan grande. Y creo que la razón de eso es que la historia de compatibilidad no es muy convincente. Básicamente, tienes que volver a escribir o construir un nuevo ecosistema desde cero. E incluso con la nueva compatibilidad de NPM, no puedo simplemente dejar Node y todos mis 1,000 módulos de Node porque hay algunas incompatibilidades. Lo que me emociona en cambio es Bunn. Bunn es un nuevo tiempo de ejecución, y el creador de Bunn también dará una charla el lunes, que se supone que es más rápido que Node y compatible. Entonces, básicamente, están tratando de construir una gallina de los huevos de oro. Podemos ejecutar el código que ya hemos escrito, pero más rápido. Si tienen éxito con esa misión, será enorme y ahora hay un respaldo serio detrás de ello y realmente quiero que Bunn suceda.

Pasando a los linters, eslint, por supuesto, es el más famoso porque tiene miles de reglas. Podemos verificar todo, verificar muchos errores. Creo que tengo alrededor de 300 reglas de lint en mi proyecto. E incluso podemos crear reglas de lint específicas del framework. Así que hay un preajuste para Next y hice un preajuste para Remotion para detectar algunos errores comunes que los usuarios del framework cometen. Lo interesante de eslint es que han anunciado que lo reescribirán completamente desde cero y no utilizarán TypeScript.

5. JavaScript Tools and Type Checkers

Short description:

Elección muy loca si me preguntas, y no entiendo por qué. Pero sin embargo, por supuesto, eslint, es imprescindible. Rome, un competidor escrito en Rust, es más rápido pero tiene menos reglas. Varios gestores de paquetes pueden introducir errores, así que usa core pack para especificar el gestor de paquetes para cada proyecto. Se recomienda encarecidamente TypeScript, y hay un nuevo comprobador de tipos basado en Rust llamado STC. Aún está en progreso y carece de un logotipo. Prettier es un formateador de código, JSON y markdown con opiniones.

Elección muy loca si me preguntas, y no entiendo por qué. Pero sin embargo, por supuesto, eslint, es imprescindible. Y como en cada categoría, hay un competidor que está surgiendo y está escrito en Rust. Se llama Rome. Por supuesto, es mucho más rápido que eslint, pero por el momento solo tiene 80 reglas. En el futuro, probablemente podrás modificar las reglas, pero todas tendrán que estar escritas en Rust. Y debido a que actualmente detecta muchos menos errores, solo te lo recomendaré si quieres menos errores en tu proyecto.

Bien, gestores de paquetes, y aquí no tengo tiempo para discutir sobre lo bueno y lo malo. Desafortunadamente, todos los gestores de paquetes son muy buenos y realmente no me importa cuál uses. Pero lo que no debes hacer es usar varios gestores de paquetes en el mismo proyecto, porque entonces terminarás con múltiples archivos de registro y podrías introducir errores sutiles. Por supuesto, han creado un gestor de gestores de paquetes llamado core pack, y ahora se envía junto con Node.js. Puedes ejecutar core pack enable en tu proyecto y lo que te permitirá hacer es especificar qué gestor de paquetes debe usar ese proyecto, y luego se apoderará de los comandos y se asegurará de que, para cada proyecto, se descargue el gestor de paquetes correcto y la versión correcta, y si intentas usar un gestor de paquetes diferente, fallará. Así es como podemos evitar que varios gestores de paquetes interfieran entre sí.

Los comprobadores de tipos han sido de gran ayuda para mí, y por supuesto, TypeScript, el Santo Grial de nuestras herramientas, nos ha hecho a todos mucho más productivos y realmente siento una conexión espiritual cuando uso TypeScript. Es tan bueno. La única oración que tengo es que podría ser un poco más rápido. Por supuesto, se recomienda mucho TypeScript. Y comenzando con esta cosa llamada STC, es como TSC, pero un Comprobador de Tipos Rápido, muy ingenioso, escrito en Rust. Un hombre, el autor de SWC, se ha propuesto ayudar a nuestra humanidad escribiendo un comprobador de TypeScript más rápido en Rust. No sé si tendrá éxito. Actualmente, está publicando actualizaciones de progreso semanales en su blog. En este momento, aproximadamente la mitad de los errores que deberían aparecer realmente aparecen. Supongo que hacer el resto es la parte más difícil. Así que actualmente no puedo recomendarlo porque no tiene un logotipo. ¿Cómo despegará una herramienta si no tiene un logotipo genial? Así que por favor, alguien haga un logotipo para STC. Cinco segundos de descanso. Necesité cuatro asuntos. Prettier. Tiene pocas opciones y es opinativo para que los desarrolladores no discutan sobre los puntos y comas.

QnA

JavaScript Tools and AI Takeover

Short description:

Entonces Rome llega con la misma filosofía pero intenta ser más rápido y ofrece recuperación de errores. Las nuevas herramientas deben ser significativamente mejores o más rápidas para reemplazar las existentes. Una nueva herramienta, ChatGPT de OpenAI, escribe código perfecto y vuelve obsoletas a otras herramientas. Sígueme en Twitter y echa un vistazo a ReMotion. Comencemos con las preguntas y respuestas.

o sin punto y coma. Y también lo uso para formatear mi JSON y markdown. Tiene mucho soporte de lenguaje, pero no es tan rápido. Entonces Rome llega, nuevamente, con la misma filosofía, pero intenta ser más rápido, lo cual es, supongo, una buena idea. Y también ofrece recuperación de errores, lo que significa que si intentas formatear una sintaxis inválida, aún podría funcionar. Esta es una característica que Prettier no tiene y es bastante interesante. Entonces, ¿qué tienen en común todas estas categorías? Creo que si las nuevas herramientas quieren llegar y reemplazar a las que hemos estado usando hasta ahora, deben ser significativamente mejores o significativamente más rápidas. Si solo haces una mejora incremental, un poco mejor pero no cambia el juego, entonces vemos que las personas no están dispuestas a hacer el trabajo de migración para obtener estos pequeños beneficios. Realmente tiene que ser un cambio de juego y la compatibilidad también es muy importante. Lo vemos en Deno, por ejemplo, o en el nuevo linter que es rápido pero tiene muchas menos reglas, necesitamos poder aprovechar todo el trabajo que hemos hecho hasta ahora en nuestro ecosistema también en la nueva herramienta y no comenzar desde cero. Muy bien. Tuve que hablar más rápido porque llegó un recién llegado tardío. ¿Has visto esto? Es tan bueno. Salio hace dos días y casi lo consideraría un nuevo tipo de herramienta. Le pedí a ChatGPT de OpenAI que escribiera un componente React que promociona React Day Berlin. Y lo ves en Twitter todo el tiempo. Realmente es tan bueno. Escribe código perfecto, perfectamente formateado, sin errores. Completamente correcto y, por lo tanto, hace que todas las herramientas que he mencionado hasta ahora sean completamente obsoletas. E incluso como desarrolladores, todos nos quedaremos sin trabajo en poco tiempo. Y, sí, es triste que haya invertido todo este trabajo y ahora esta cosa de IA se esté apoderando. Así que debería dejar el escenario ahora. Puedes seguirme aquí en Twitter y también echar un vistazo a ReMotion, con el que puedes crear videos de forma programática. Muchas gracias. Muchas gracias, Johnny. ¿Por qué no te sientas aquí en el puesto de preguntas y respuestas y comenzamos con las preguntas? En primer lugar, tengo una pregunta personal. ¿Cuál es tu régimen de entrenamiento cardio para poder hablar tan rápido durante tanto tiempo? No creo que pueda hacer eso. Eso fue intenso. Estoy agotado. Necesito una pregunta más fácil.

Cheese, Vite, Yarn, Flow, and jQuery

Short description:

Comencemos con algo muy fácil. ¿Cuál es el mejor queso suizo y por qué es raclette? Oh, raclette es muy social. ¿Qué tan listo está Vite para producción? ¿Es algo que usarías, por ejemplo, en Remotion? ¿Es hora de abandonar yarn? Tenemos un viajero en el tiempo de 2018 que pregunta, ¿qué opinas de flow? Sí, ni siquiera merecía un lugar en la presentación, desafortunadamente. Oh, tenemos un viajero en el tiempo del año 2008 que pregunta, ¿por qué no mencionaste jQuery? Podría expandir esto en una charla de dos horas, así que se trataba solo de herramientas que usarías para React.

Muy bien, empecemos. Comencemos con algo muy fácil. ¿Cuál es el mejor queso suizo y por qué es raclette? Oh, raclette es muy social. Puedes sentarte alrededor de la mesa y tener queso derretido en el centro y automáticamente todos se divierten. Ojalá tuviéramos algo aquí ahora mismo. Muy bien, ahora pasemos a las preguntas serias. Déjame ver. ¿Qué tan listo está Vite para producción? ¿Es algo que usarías, por ejemplo, en Remotion? Sí, definitivamente. Creo que Vite también tiene alguna integración, algún middleware que podríamos usar para integrarlo en nuestro marco de trabajo y diría que lo estamos considerando. La historia de los módulos ES lo hace un poco más difícil para los usuarios y también, como mencioné, es solo un marco de trabajo de frontend, por lo que es más como un reemplazo de Create React app, pero menos para, por ejemplo, Next.js.

Sí, y si me permites agregar, actualmente estoy usando Vite activamente y el único problema real son los autores de bibliotecas que no admiten Javascript estándar. Por ejemplo, si usas AWS, muchas de las bibliotecas de cliente de AWS Amplify son básicamente solo scripts de webpack. Suponen que muchas de las dependencias de nodo están shimmed. Entonces, ya sabes, si usamos Vite y nos quejamos a los autores de las bibliotecas, creo que todos podemos estar en un lugar mejor pronto. Muy bien. ¿Es hora de abandonar yarn? Esta cosa de la versión 2, debo admitir, fue un poco, fue un poco extraña, pero, ya sabes, creo que si no funciona para ti, es relativamente fácil cambiar a pnpm. Entonces, si te funcionó bien, quédatelo. Y si no, hay otras herramientas que puedes adaptar relativamente fácilmente. No lo veo como un problema demasiado grande.

Bien. Tenemos un viajero en el tiempo de 2018 que pregunta, ¿qué opinas de flow? Bueno, probablemente será el futuro. Sí, no recomendamos usar flow hoy en día. Sí, ni siquiera merecía un lugar en la presentación, desafortunadamente. Sí, creo que es una de esas historias tristes donde, desde un nivel conceptual, eran más correctos que TypeScript, pero la experiencia del desarrollador no está ahí. Y a los desarrolladores les importa más la experiencia que la corrección, creo. Muy bien. Veamos qué más tenemos aquí. Oh, tenemos un viajero en el tiempo del año 2008 que pregunta, ¿por qué no mencionaste jQuery? Podría expandir esto en una charla de dos horas, así que se trataba solo de herramientas que usarías para React. Estamos en React Day Berlin, y sí, en realidad Astro es lo nuevo, pero como era React Day, no lo mencioné.

Bundling UI Libraries and the Future of JavaScript

Short description:

En el futuro, puede que no sea necesario empaquetar bibliotecas de interfaz de usuario. TypeScript se puede utilizar para transpilar y enviar la biblioteca a NPM. Se plantea la pregunta de por qué Denno no ha despegado como se esperaba, destacando los desafíos de hacer que todo funcione y la falta de beneficios significativos. Se discute la posibilidad de estandarizar diferentes variantes de JavaScript, alineándose con los estándares del navegador. El problema de la fatiga de JavaScript ha pasado del cliente y el tiempo de ejecución al lado de las herramientas. Actualmente, las opciones maduras y probadas en batalla son las claras ganadoras en el espacio de las herramientas. Se debate la importancia del patrocinio corporativo en los proyectos, considerando que el respaldo de una empresa aumenta las posibilidades de éxito.

Genial. Veamos, el mejor bundler y las herramientas para bibliotecas de kits de interfaz de usuario en 2023. Así que ahora tenemos a un viajero del tiempo desde el futuro. Diría que TypeScript. Quiero decir, si estás enviando una biblioteca de interfaz de usuario, no necesariamente tienes que empaquetarla, solo hace que sea más difícil cambiar las fuentes, parchear los módulos de node. Así que simplemente lo transpilaría con TypeScript y luego lo enviaría a NPM. Sí.

Bien, aquí hay un poco de... Espera, ¿me... perdí la pregunta? Había una pregunta muy interesante sobre ¿Por qué crees que Denno no ha despegado tanto como algunas personas esperaban? Lo he probado y es difícil hacer que todo funcione. Incluso en un proyecto pequeño, al menos tienes cientos de módulos de NPM y Siempre algo no funciona. Todo tiene que funcionar, tiene que ser 100% ideal para que lo adoptemos, ¿sabes? Pero esa no es la realidad. Y también creo que no es suficientemente revolucionario como para justificar que invirtamos todo el tiempo en migrarlo y Creo que BAN es mucho más prometedor. Claro, y creo que tal vez agregaré mi propia pregunta a esto porque una cosa que Denno está haciendo como negocio es que son una plataforma de vanguardia, ¿verdad? Como, ya sabes, ejecutan el tiempo de ejecución de vanguardia. Y luego tienes, ya sabes Cloudflare, por ejemplo, o Vercel que utiliza el tiempo de ejecución de vanguardia de Cloudflare y están comprometidos con el uso de un JavaScript puro y estándar del navegador. ¿Crees que estos diferentes sabores de JavaScript desaparecerán lentamente en favor de los estándares del navegador? ¿O crees que habrá un futuro de transpilación para siempre? Espero que todo se estandarice y ya está. Quiero decir, tenemos el navegador, tenemos diferentes navegadores, Node, Deno, One, todos tienen pequeñas diferencias. Creo que hay un grupo de trabajo llamado Winter CG que está tratando de alinear eso para que esperemos que haya más y más estandarización en el futuro y no tengamos problemas de interoperabilidad tan grandes. Sí, creo que con todas estas herramientas, ahora estoy haciendo mis propias preguntas, lo siento. No me importa lo que quieras tú. Una de las cosas de las que solíamos hablar mucho en el pasado era esta idea de la fatiga de JavaScript, ¿verdad? Y hemos pasado. Solía estar en el cliente, solía estar en el tiempo de ejecución, ya sabes, solía ser qué marco de trabajo usas. Pero ahora parece que ese problema se ha trasladado al lado de las herramientas. ¿Ves algún claro ganador emergiendo donde, como tal vez en unos años, podríamos reducir las cosas y sería más obvio para, por ejemplo, un desarrollador web elegir solo el estándar y no pensarlo demasiado? Creo que por ahora, los aburridos, incluso si son lentos, están ganando y se están negando porque son muy probados en batalla. Y si hay nuevas incorporaciones, si alguien más está ganando a los que son muy maduros en este momento, solo necesitan tener una compatibilidad clara y tener beneficios tangibles sobre lo que estamos usando ahora mismo. Así que no veo que cambie demasiado. Y personalmente, como desarrollador, ¿cuánto peso le das al patrocinio corporativo de los proyectos? Por ejemplo, había varios proyectos de Vercel, pero STC, por ejemplo, no es un proyecto oficial de Vercel, solo es el chico de Vercel que lo está escribiendo, ¿verdad? ¿Importa para ti? ¿De dónde vienen estos proyectos? ¿O solo te basas en los méritos del propio proyecto? Creo que este es un punto muy importante, ¿cuánto respaldo hay detrás de él? Y sí, si solo un chico está tratando de reimplementar TypeScript, veo menos posibilidades de que tenga éxito que si una empresa paga a ingenieros para hacer algo grande. Es cierto. Es interesante, porque en el código abierto siempre hemos tenido este credo de que todos comienzan desde el mismo nivel, cualquiera puede crear la mejor herramienta para el futuro, pero es más difícil mantener algo si no tienes millones de dólares de inversión detrás de ello.

The Corporate Era of JavaScript Libraries

Short description:

Ya sea que pierdas si nadie lo está usando o pierdas si todos lo están usando y te inundas de problemas. En los últimos años, hemos entrado en una era corporativa de bibliotecas de JavaScript patrocinadas por proveedores de alojamiento web. ¿Alguna vez lamentas los días en que el pequeño podía afectar el futuro de una manera más impactante? Sí, cualquiera todavía puede sembrar una semilla. Si tienes buenas ideas y las construyes, entonces... VerCell te contratará y podrás recibir un pago por hacerlo. Eso realmente puede sucederle a cualquier desarrollador aquí.

Pero creo que la realidad ahora es que simplemente tener un proyecto de código abierto y construirlo no escala. Ya sea que pierdas si nadie lo está usando o pierdas si todos lo están usando y te inundas de problemas. Siento que en los últimos años hemos entrado en esta especie de era corporativa de bibliotecas de JavaScript patrocinadas por proveedores de alojamiento web. Tienes a VerCell, tienes a Gatsby, Netlify, todas estas empresas. ¿Alguna vez lamentas los días en que el pequeño podía afectar el futuro de una manera mucho más impactante, o crees que todavía estamos allí? Sí, creo que cualquiera todavía puede sembrar una semilla. Si tienes buenas ideas y las construyes, entonces... VerCell te contratará y podrás recibir un pago por hacerlo. ¡Absolutamente! Y eso realmente puede sucederle a cualquier desarrollador aquí. Bien, vamos a hacer un par de preguntas más del público. Entonces, flujos de trabajo de monorepo como NX o Alerna. ¿Algún consejo cuando se trata de herramientas de construcción en ese entorno? Sí, también hay múltiples opciones disponibles. NX, Alerna y TurboRepo. Personalmente, uso TurboRepo. Gran marketing, ya sabes, soy un fanático de eso. Y anteriormente usaba Alerna, pero no tenía esta función de almacenamiento en caché que tiene TurboRepo. Y ahora uso TurboRepo. Desafortunadamente, no sé mucho sobre NX. Genial. Y luego la última pregunta, nos quedan unos 20 segundos en el reloj. ¿Qué hay del futuro de Remotion? No has dedicado mucho tiempo a promocionar tu producto, así que ¿por qué no nos cuentas qué estás construyendo? Sí, hasta ahora con Remotion nos hemos enfocado principalmente en permitir que los desarrolladores de React creen videos de forma programática. Lo que no fue tan bueno hasta ahora es que era muy difícil. Realmente tenías que ser un ingeniero experto en React para crear algo convincente. Y ahora solo queremos crear más plantillas, preajustes, abstracciones de nivel superior. Puedes imaginar esto como transiciones, efectos especiales, componentes de alto nivel que puedes agregar a Remotion para facilitar la creación de estos videos de forma programática ahora que se ha demostrado su viabilidad. Y también queremos brindarte herramientas para construir aplicaciones que puedan crear videos. Como una aplicación web donde un usuario puede arrastrar un video y tendrás una línea de tiempo y pueden editar un video en tu aplicación web y se renderizará en formato mp4 de manera muy sencilla y queremos facilitar eso. Maravilloso, me encanta el proyecto. Muchas gracias por estar aquí. Escuché que esta fue tu primera charla en una conferencia. Sí, así es. ¿Podemos aplaudir a Jony? ¡Gracias!.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Vite: Repensando las Herramientas de Frontend
JSNation Live 2021JSNation Live 2021
31 min
Vite: Repensando las Herramientas de Frontend
Top Content
Vite is a next-generation build tool that leverages native ES modules for improved performance. It eliminates the need for bundling and improves hot module replacement. Vite provides an opinionated default configuration while still allowing advanced customization through plugins. It is framework agnostic and can be used for React and other applications. Vite is being adopted by Next.js and Create React App, and integration with Nuxt 3 offers significant speed improvements.
Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Uso efectivo de useEffect
React Advanced 2022React Advanced 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Next.js para Desarrolladores de React.js
React Day Berlin 2023React Day Berlin 2023
157 min
Next.js para Desarrolladores de React.js
Top Content
Featured WorkshopFree
Adrian Hajdin
Adrian Hajdin
En esta avanzada masterclass de Next.js, profundizaremos en conceptos clave y técnicas que permiten a los desarrolladores de React.js aprovechar al máximo Next.js. Exploraremos temas avanzados y prácticas prácticas, equipándote con las habilidades necesarias para construir aplicaciones web de alto rendimiento y tomar decisiones arquitectónicas informadas.
Al final de esta masterclass, serás capaz de:1. Comprender los beneficios de los Componentes del Servidor React y su papel en la construcción de aplicaciones React interactivas, renderizadas por el servidor.2. Diferenciar entre el tiempo de ejecución de Edge y Node.js en Next.js y saber cuándo usar cada uno en función de los requisitos de tu proyecto.3. Explorar técnicas avanzadas de Renderizado del Lado del Servidor (SSR), incluyendo streaming, fetching paralelo vs. secuencial, y sincronización de datos.4. Implementar estrategias de caché para mejorar el rendimiento y reducir la carga del servidor en las aplicaciones Next.js.5. Utilizar Acciones React para manejar la mutación compleja del servidor.6. Optimizar tus aplicaciones Next.js para SEO, compartir en redes sociales, y rendimiento general para mejorar la descubrabilidad y la participación del usuario.
Aventuras de Renderizado Concurrente en React 18
React Advanced 2021React Advanced 2021
132 min
Aventuras de Renderizado Concurrente en React 18
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
Con el lanzamiento de React 18 finalmente obtenemos el tan esperado renderizado concurrente. Pero, ¿cómo va a afectar eso a tu aplicación? ¿Cuáles son los beneficios del renderizado concurrente en React? ¿Qué necesitas hacer para cambiar al renderizado concurrente cuando actualices a React 18? ¿Y qué pasa si no quieres o no puedes usar el renderizado concurrente todavía?

¡Hay algunos cambios de comportamiento de los que debes estar al tanto! En esta masterclass cubriremos todos esos temas y más.

Acompáñame con tu portátil en esta masterclass interactiva. Verás lo fácil que es cambiar al renderizado concurrente en tu aplicación React. Aprenderás todo sobre el renderizado concurrente, SuspenseList, la API startTransition y más.
Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
Presentando FlashList: Construyamos juntos una lista performante en React Native
React Advanced 2022React Advanced 2022
81 min
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
Featured Workshop
David Cortés Fulla
Marek Fořt
Talha Naqvi
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.