/
Este episodio está inspirado en un artículo titulado Why is modern web development so complicated? que este episodio y que encontré gracias al canal de Telegram de Andros Fenollosa que informa sobre historias relevantes en Hacker News.
Una gran ventaja del mundo web consiste en la facilidad de publicar contenido, tan sólo con pocas herramientas y unos conocimientos mínimos. Escribes un documento en HTML, le das estilo y presentación con CSS y algo de comportamiento y dinamismo con JS. Todo esto lo editas en tu navegador y luego es tan fácil como subirlo a un servidor con acceso internet. Es posible que para muchos casos no haga falta complicarse más la vida, ya que es una opción perfectamente válida y lo seguirá siendo durante mucho tiempo. Pero como todos sabemos el desarrollo web moderno, especialmente en la parte del front-end se ha ido complicando de una forma tremenda y cada vez son más las herramientas y los flujos de trabajo que…incorporamos o que pensamos que deberíamos incorporar a nuestro día a día.
¿En qué momento por qué todo empezó a complicarse?
JavaScript es el gran culpable. Como único lenguaje de programación en el navegador ha debido evolucionar para adaptarse y mejorar sus limitaciones.
- Grandes diferencias en el soporte del lenguaje entre navegadores.
- 2006 JQuery fue una solución que gracias a su API solucionaba muchos de los problemas (manipulación del DOM, asincronía…) pero necesitas una librería y la sintaxis y la estructura del código termina por ser farragosa de mantener.
- Momento clave. Llega ECMAScript 6 en 2015 para ofrecer un estándar sólido para JS, pero todavía queda pendiente el gran problema clásico….
Soporte de JavaScript entre navegadores
Llega un momento en el que se intercambian los papeles. Antes teníamos un JS compatible entre navegadores pero con el coste de ser muy feo de leer y escribir y en cambio ahora tenemos un JS, con características incompatibles entre navegadores pero muchísimo más fácil de leer y escribir.
La solución pasa por usar Babel un compilador de Javascript que convierte el código en el estándar ECMAScript a un javascript comprensible para navegadores antiguos o que no soportan las nuevas características.
Esto genera la necesidad de poner en producción una versión diferente del código a la desarrollo y por tanto genera lo que es la mayor limitación con la que nos encontramos en desarrollo web moderno: saber manejar y organizar los entornos locales y de producción. Todo esto ha producido una serie de necesidades con respecto a como gestionar un entorno de desarrollo moderno web: gestores de tarea para mimificar y compactar código, preprocesadores CSS, correctores sintáticos, optimización y compresión de imágenes..y así un largo número de herramientas que hacen cada vez más complicado el desarrollo web.