This blog is highly personal, makes no attempt at being politically correct, will occasionaly offend your sensibility, and certainly does not represent the opinions of the people I work with or for.
Introduction to the Elm Programming Language

Some time ago, I stumbled across this: The introduction to Reactive Programming you've been missing. I quickly glanced over it, but didn't read it, not only because I didn't have time, but mostly because at first it looked like.... esoteric. I pondered which kind of nerds could possibly be interested in this and moved on.

Completely independently, I came to know about React JS [Wikipedia, Facebook]. A part of me loved it profoundly. I thought the ideas were awesome, but I didn't got into it, because it felt... messy; in very subtle ways (mainly because of this mix of pseudo language and HTML). I felt that there was something great in/about it but that the guys at Facebook had implemented _it_ as an ugly hack, losing interest and focus of the true underlying idea that I could not yet put words on.

More recently, I accidentally, came across Elm. Elm is what you get when you put together two ideas:

  • The realization that HTML+CSS+Javascript sucks.
    You know, I think that future generations will look back at the 2000-2015(+) era as a time when, for some strange reasons, people who should have known better collectively decided that writing web applications by smashing together HTML+CSS+Javascript (not to mention the backend business) was a socially acceptable carrer path. HTML was, at the time, a quick way to solve a simple problem ("How to make the web serve something slightly more useful than text/plain"), CSS was... a not so bad solution to a real problem ("styling"), but took a life of its own for the worse and the more it evolves the scarier it gets. As for Javascript, it's a nice language, you have to give that to it, but as for so many other things, it's been abused to stratospheric levels and now some dude even moved it to the backend (I am looking at you Node.js); and that's not even the worse, just stay on HN for few days to see how those ADHD kids can't even agree on a framework and invent a new one every couple of hours; and feel like they have achieved something... [1]
  • Functional programming is awesome and Reactive Functional Programming is the best thing towards the stars.

[1] (update) Few days after writing those lines I came across It's the future; which is making my point way better I could ever do.

(update 20th July) Just came across Thoughts on things: Do we need browsers?.

I discovered Elm when I told to myself that life is too short and that there *must* be a better way to deliver functionalities through the web than the traditional shit we've been doing so far. The Light (tm) was just one Google query away, but I had to know what to ask for (and asking the right thing, does require non trivial experience ^^). Anyway..., Elm is a young functional language, implements functional operations on signals (eg: is reactive), and compiles to HTML+CSS+Javascript (so that the folks who ship web browsers can just carry on doing the same thing they've been doing but without me having to put my hands into dirt ever again). By the way, the below talk doesn't say much as much as what can be found on the Elm example page (if you prefer reading and trying in the online editor, instead of listening).