Herramientas de JavaScript: La Evolución y Futuro de las Herramientas de JS y Construcción Front-end

Rate this content
Bookmark

En esta charla, repasaré la evolución de las herramientas de JavaScript y las herramientas de construcción front-end, el propio JavaScript y su futuro.


También hablaré sobre Babel y otras herramientas de construcción, lo que podrían ser en el futuro. Además, hablaré sobre JavaScript en sí como lenguaje, su presente y su futuro.

This talk has been presented at JSNation Live 2020, check out the latest edition of this JavaScript Conference.

FAQ

Un Desarrollador Social, en el contexto del desarrollo web, es alguien que participa activamente en la comunidad de desarrolladores, compartiendo conocimiento, apoyando el aprendizaje colectivo y abogando por las mejores prácticas y herramientas en el desarrollo de software.

Las principales razones incluyen la gestión de dependencias, la transpilación para asegurar la compatibilidad de sintaxis en diferentes navegadores, el empaquetado de código en un archivo central, la minificación para reducir el tamaño del código y mejorar la carga, y la gestión de módulos sin depender del navegador.

Entre 2005 y 2010, herramientas como Dojo Builder y Google Closure Tools eran populares. Dojo Builder ofrecía características como minificación y gestión de módulos, mientras que Google Closure Tools se centraba en la optimización y minimización del código.

Webpack ha evolucionado significativamente desde su primera versión hasta la versión actual, la versión 5. Ha ganado popularidad en grandes empresas, ofreciendo características como el reemplazo de módulos en caliente, división de código y recarga en vivo, además de permitir a los desarrolladores escribir sus propios scripts de npm.

Rollup es ideal para construir bibliotecas de JavaScript ya que permite una configuración sencilla, ofrece división de código y convierte pequeñas piezas de código en un archivo complejo, siendo más fácil de aprender y proporcionando una construcción rápida.

Parcel se destaca por no requerir configuración previa, lo cual elimina la dificultad de configuración que presentan herramientas como Rollup o Webpack. Además, ofrece un tiempo de empaquetado más rápido y una excelente experiencia de desarrollo con buena documentación y soporte comunitario.

Snowpack elimina la necesidad de empaquetar durante el desarrollo aprovechando las importaciones de módulos ES, lo que permite reconstrucciones instantáneas y una construcción más rápida. Aunque aún es experimental, busca implementar un enfoque sin empaquetado para la producción.

ESBuild, siendo un experimento, muestra lo rápido que pueden ser las herramientas de construcción. Escrito en Go, es más rápido que Webpack, Rollup y Parcel, y su rendimiento superior está influenciando el desarrollo de nuevas herramientas y enfoques en el ecosistema de JavaScript.

El futuro de las herramientas de construcción de JavaScript parece dirigirse hacia soluciones sin configuración y con mayor personalización, lo que permitirá a los desarrolladores mayor flexibilidad y agilidad. Se espera también una mejora continua en las velocidades de construcción.

Shedrack Akintayo
Shedrack Akintayo
11 min
18 Jun, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla de hoy aborda la evolución y futuro de las herramientas de JavaScript, incluyendo la gestión de dependencias, la transpilación, el empaquetado, la minificación y la gestión de módulos. Webpack ha ganado popularidad y ofrece características como la sustitución de módulos en caliente y la división de código. También se discuten otras herramientas de construcción como Rollup, Parcel, Snowpack y ESBuild. La charla explora enfoques de importación en el navegador y sin empaquetado, y enfatiza la naturaleza dinámica del ecosistema de JavaScript con herramientas en constante evolución y compensaciones específicas del proyecto.

1. Introducción a las herramientas de JavaScript

Short description:

Hola a todos. Hoy voy a hablar sobre las herramientas de JavaScript, la evolución y el futuro de JavaScript y las herramientas de construcción frontend. Las razones esenciales por las que construimos nuestro código frontend hoy en día incluyen la gestión de dependencias, la transpilación, el empaquetado, la minificación y la gestión de módulos utilizando el navegador. La historia de la construcción web comenzó con los primeros empaquetadores como Dojo y Google Closure Tools. Sin embargo, estas herramientas tenían sus propios problemas. Luego, surgieron Gulp, Grunt, Babel y Browserify con sus propias soluciones para mejorar el proceso de desarrollo.

Mi nombre es Cedric Alcantara. Soy un Desarrollador Certificado. Hoy voy a hablar sobre las herramientas de JavaScript, la evolución y el futuro de JavaScript y las herramientas de construcción frontend. Soy un Desarrollador Social, soy un Defensor del Desarrollador y también soy un Autor Técnico Invitado en Smashing Magazine.

Entonces, ¿por qué se construye la web? Las razones esenciales por las que construimos nuestro código frontend hoy en día. Estas razones incluyen la gestión de dependencias, necesitamos poder gestionar todas las dependencias que nuestro código necesita sin tener que preocuparnos de que alguna de ellas se rompa. También necesitamos la transpilación, por lo que necesitamos poder utilizar estas sintaxis data sin problemas de compatibilidad en nuestro navegador. El empaquetado, necesitamos poder agrupar todo nuestro código en un archivo central. La minificación, necesitamos poder reducir el tamaño de nuestro código y tener una entrega más rápida al lado del cliente. Además, una parte muy importante es la gestión de módulos sin utilizar el navegador. Por lo tanto, hay ciertos navegadores que no tienen gestión de módulos, por lo que necesitamos poder gestionar muchos módulos sin tener que preocuparnos por nada.

Entonces, la historia de la construcción web. De 2005 a 2010 se vio la era de los primeros empaquetadores. Dojo fue lanzado en 2005 con su propia herramienta de construcción llamada Dojo Builder que ofrece minificación, eliminación de código muerto, múltiples perfiles de construcción, gestión de módulos y se puede incluso utilizar Node.js para una construcción más rápida. Google Closure Tools también fue lanzado en noviembre de 2009 por Google y tenía un compilador, por lo que esta es básicamente su propia herramienta de construcción que ayuda a eliminar código, código muerto, minimizar código, analizar código y optimizar código. Entonces, los problemas de los primeros empaquetadores y empaquetadores, por qué no eran perfectos. Dojo Builder era pesado. Dependía mucho de Java y tenía una documentación muy pobre. Los problemas del Compilador de Google Closure eran, era propietario, obviamente fue hecho por Google y era una especie de proyecto interno antes de ser lanzado al público. Requería Java 2, el tiempo de compilación era muy lento y tenía una mala experiencia de desarrollo. De 2010 a 2012 se vio la aparición de Gulp y Grunt, fueron los primeros en intentar estandarizar la construcción de canalizaciones utilizables sobre plugins. También dieron a los desarrolladores la libertad de escribir sus propios scripts de construcción y los plugins estaban disponibles para tareas básicas para los desarrolladores. En 2012 se vio la aparición de Babel. Babel permitió a los desarrolladores utilizar la última sintaxis de ASX sin preocuparse por la compatibilidad del navegador. Convierte la sintaxis de ASX en CommonJS y permite a los desarrolladores crear plugins personalizados para sus necesidades. De 2012 a 2014 se vio la aparición de Browserify. Esto fue un cambio de juego principalmente debido a que tenía el poder de npm como un registro de paquetes. Permitía a los desarrolladores utilizar ciertos plugins. Tenía la misma sintaxis que NodeJS y también tenía la sintaxis de módulo ASX, por lo que los desarrolladores estaban bastante contentos, pero tenía sus propias desventajas.

2. Webpack y sus características

Short description:

Desde 2015 hasta ahora, Webpack ha crecido de la versión 1 a la versión 5 y es utilizado por muchas grandes empresas en producción. Es más rápido que Browserify y ofrece características como reemplazo de módulos en caliente, división de código y recarga en vivo. Webpack también tiene el poder de los scripts de npm, lo que permite a los desarrolladores escribir sus propios scripts sin preocupaciones. Con complementos y preajustes, proporciona una mejor experiencia para el desarrollador.

Desde 2015 hasta ahora, hemos presenciado el surgimiento de Webpack, cómo ha crecido de la versión 1 a la versión actual, la versión 5. Muchas grandes empresas están utilizando actualmente Webpack en producción. Es más rápido que Browserify. Tiene un servidor de desarrollo muy bueno llamado Webpack Server. Tiene características como reemplazo de módulos en caliente, división de código, recarga en vivo, etc. También tiene el poder de los scripts de npm, por lo que los desarrolladores pueden escribir sus propios scripts de npm sin preocuparse por nada. Tenía complementos para diversos usos y también tenía preajustes para ampliar las características de Webpack. También ofrecía una mejor experiencia para el desarrollador en comparación con otras herramientas de construcción. Realmente era bueno para los desarrolladores.

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.
Compilador React Forget - Entendiendo React Idiomático
React Advanced Conference 2023React Advanced Conference 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.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Cómo Bun hace que la construcción de aplicaciones React sea más simple y rápida
React Day Berlin 2022React Day Berlin 2022
9 min
Cómo Bun hace que la construcción de aplicaciones React sea más simple y rápida
BUN is a modern all-in-one JavaScript runtime environment that achieves new levels of performance. It includes BUN dev, a fast front-end dev server, BUN install, a speedy package manager, and BUN run, a fast package runner. BUN supports JSX, has optimized React server-side rendering, and offers hot module reloading on the server. The priorities for BUN include stability, node compatibility, documentation improvement, missing features in BUN install, AST plugin API, native Windows support, Bundler and Minifier optimization, and easier deployment to production. BUN's AST plugin API allows for bundle-time JavaScript execution and embedding code, potentially inspiring new frameworks.
Turbopack. ¿Por qué? ¿Cómo? ¿Cuándo? y la Visión...
React Day Berlin 2022React Day Berlin 2022
32 min
Turbopack. ¿Por qué? ¿Cómo? ¿Cuándo? y la Visión...
The Talk discusses TurboPack, a successor to Webpack, aiming to create a framework-independent, flexible, and extensible tool for the open-source community. It addresses performance challenges by integrating SWC into Next.js. The challenges with Next.js and Webpack include orchestration issues, backward compatibility constraints, and cache invalidation problems. TurboEngine and TurboPack provide constant performance in incremental builds, leveraging Rust's predictable performance and parallelism. The Talk also covers topics like dependency tracking, task graphs, cache invalidation, lazy asset graphs, and the integration of TurboPack with Next.js. The future plans involve reconfiguring Webpack and TurboEngine, moving computations to the cloud, providing insights into builds, and facilitating migration and integration with JavaScript projects.
El Núcleo de Turbopack Explicado (Codificación en Vivo)
JSNation 2023JSNation 2023
29 min
El Núcleo de Turbopack Explicado (Codificación en Vivo)
Tobias Koppers introduces TurboPack and TurboEngine, addressing the limitations of Webpack. He demonstrates live coding to showcase the optimization of cache validation and build efficiency. The talk covers adding logging and memorization, optimizing execution and tracking dependencies, implementing invalidation and watcher, and storing and deleting invalidators. It also discusses incremental compilation, integration with other monorepo tools, error display, and the possibility of a plugin system for Toolpag. Lastly, the comparison with Bunn's Builder is mentioned.

Workshops on related topic

Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
React Day Berlin 2022React Day Berlin 2022
86 min
Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
Top Content
WorkshopFree
Hussien Khayoon
Kahvi Patel
2 authors
Usar una biblioteca puede parecer fácil a primera vista, pero ¿cómo eliges la biblioteca correcta? ¿Cómo actualizas una existente? ¿Y cómo te abres camino a través de la documentación para encontrar lo que quieres?
En esta masterclass, discutiremos todos estos puntos finos mientras pasamos por un ejemplo general de construcción de un editor de código usando CodeMirror en React. Todo mientras compartimos algunas de las sutilezas que nuestro equipo aprendió sobre el uso de esta biblioteca y algunos problemas que encontramos.
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
JSNation 2023JSNation 2023
44 min
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
WorkshopFree
Ryan Albrecht
Ryan Albrecht
¿Conoces ese molesto error? ¿El que no aparece localmente? Y no importa cuántas veces intentes recrear el entorno, no puedes reproducirlo. Has revisado las migas de pan, leído la traza de pila y ahora estás jugando al detective para unir los tickets de soporte y asegurarte de que sea real.
Únete al desarrollador de Sentry, Ryan Albrecht, en esta charla para aprender cómo los desarrolladores pueden utilizar la Reproducción de Sesiones, una herramienta que proporciona reproducciones de video de las interacciones de los usuarios, para identificar, reproducir y resolver errores y problemas de rendimiento más rápido (sin golpear tu cabeza contra el teclado).