Creo que esta pregunta exige al menos una mención de Elm.
Desde la era de Tim Berners-Lee, la comunidad de desarrollo web se ha aferrado a los ideales del principio de menor poder, marcado semántico y aislamiento del diseño del contenido.
Sin embargo, en los últimos años, la comunidad front-end de desarrollo web (javascript) ha comenzado a entretener cierta competencia con esas mejores prácticas. En particular, se ha vuelto cada vez más aceptable pasar de dividir el código en plantillas de presentación y controladores lógicos a dividir el código en componentes con presentación y lógica agrupadas para su reutilización.
- ¿Cuáles son los mejores institutos de diseño web en Delhi?
- ¿Es buena idea node.js para la aplicación saas?
- ¿Puedes convertirte en diseñador web solo por ser un experto en WordPress y sin conocer HTML y CSS?
- ¿Para qué se usa HTML?
- ¿Cuáles son las similitudes y diferencias entre Laravel y Django?
Esto se ha ejemplificado de manera más destacada en el éxito de la biblioteca React de Facebook.
Reaccionar: repensar las mejores prácticas – Pete Hunt
Sin embargo, si bien este movimiento ha cobrado impulso, todavía ha habido una gran variación y experimentación en cómo los proyectos diseñan la superficie API de estos nuevos paquetes de componentes, cómo los unen en aplicaciones completas y cómo agrupan y entregan esos productos para consumidores.
Cadenas de herramientas complicadas, preprocesamiento de código, cientos de líneas de configuración y diagramas de flujo de datos de dibujos animados han sido el resultado de este (¡emocionante!) Proceso de descubrimiento.
(Una interpretación de la arquitectura de flujo por code-cartoons.com)
Entra Elm!
Elm se implementa como una compilación en lenguaje javascript . Esto significa que escribe su código en Elm, lo ejecuta a través de un compilador y recupera javascript que puede pasar a un navegador para que se ejecute.
Elm se basa en la premisa de The Pit of Success. Una buena interfaz de usuario debería hacer que sea difícil caer en trampas y que sea fácil encontrar el éxito. Al proporcionar las bases para arquitecturas de componentes como elementos integrados, y al exigir a los desarrolladores que salten a través de los aros para comunicarse por medios impredecibles, obtenemos muchas garantías gratuitas sobre el código que escribimos.
Algunos ejemplos de los beneficios que ofrece Elm:
- Configuración cero
- Inferencia de tipo comprobada por el compilador
- Cheap refactorización de código
- Buen soporte IDE
- Libertad total de excepciones de tiempo de ejecución
- Próximamente: ¿Depuración de viajes en el tiempo?
Te dejaré con este excelente discurso de Evan Czaplicki, el creador de Elm, si quieres escuchar más.
PD: Para cualquier persona que esté aburrida de Elm y esté buscando la verdadera ventaja, recomiendo echarle un vistazo a Reason. En combinación con Bucklescript, es posible producir cargas útiles de JavaScript extremadamente ligeras con todas las garantías proporcionadas por la cadena de herramientas OCaml.