Taller de programación web con Elm

By Matías Lang

Elevator Pitch

Elm es un lenguaje hecho específicamente para hacer aplicaciones web que compila a Javascript. Su sistema de tipos y control sobre los side-effects permiten que el compilador tenga excelentes mensajes de error y que produzca código sin runtime exceptions, y por lo tanto con muchos menos bugs.

Description

Si bien Javascript es un lenguaje poderoso y expresivo, muchos de los features que tiene son desaconsejados y considerados malas prácticas dentro de su comunidad. Esto hace que desarrollar código mantenible y de calidad sea posible, pero requiera muchísima disciplina y experiencia previa.

En el taller quiero hablar de Elm, un lenguaje de programación funcional hecho para el desarrollo front-end. Este fuerza las buenas prácticas de programación, haciendo que tanto programadores novatos como avanzados programen aplicaciones mantenibles, testeables y lo mejor de todo, sin excepciones en tiempo de ejecución!

El taller va a tener un enfoque práctico. Después de explicar brevemente la sintaxis y los conceptos más importantes del lenguaje se procederá a codear una aplicación real, mostrando algunas de las ventajas de programar con Elm, como son tener un compilador con excelentes mensajes de error y que produce código que una vez que compila funciona de una!

Notes

En caso de aceptarse tanto la charla como el taller, idealmente la charla debería estar primero en el cronograma para así atraer más gente al taller. Se asume que los asistentes al taller tienen un conocimiento básico de HTML y opcionalmente de Javascript.

Hace más de dos años vengo haciendo proyectos con Elm y estoy muy contento con los resultados que obtuve. Siempre que puedo trato de presentarle Elm a programadores con diferentes backgrounds. Recientemente di una charla y taller sobre Elm en mi trabajo, y en este momento estamos haciendo pruebas para meterlo en el producto que desarrollamos y eventualmente reemplazar el código que tenemos hecho en AngularJS 1.4 ya que se volvió muy difícil de mantener.

También tengo conocimientos sobre otros lenguajes de programación funcionales como Haskell, un lenguaje en el que Elm se inspiró mucho, aunque pensando en hacer algo con una curva de aprendizaje más amena.