I do have sort of an odd question: why does learning Elm matter? Except for the obvious reason of expanding one's mind which in itself it's not to be belittled. But probably you're going to address this in later posts so I might just be getting ahead of myself :-D
I mean... why does learning any new language matter?
Sorry, my question wasn't meant to downplay the importance of his quest. I'm all for learning odd languages and expanding one's mind as I said.
My question was purely practical and directed to the author: his tone is definitely excited but I noticed he didn't address the why :-)
I googled a bit (I'm 100% ignorant about Elm) and it seems a terrific language on paper.
Totally fair :D Only reason I'm familiar with elm is my SQL teacher this semester really likes it so he'd mention it at and random and posted some articles about it just for fun.
As far as I know SQL is a declarative language. Did you teacher liked ELM because ELM is also declarative?
I find that learning new languages teaches me new concepts and also gives me further insight into already known concepts from previous languages. These are things I then tend to bring back to my old language giving me new ways of solving problems in my old familiar environment/language. Two examples come to mind:
Learning C after Java gave me insight into references in Java and what the garbage collector gives me and what it costs me.
The way I see it. It's better refactoring and no runtime errors. The things I often hear about JS is that it's hard to find bugs. You see the error messages but don't really know where the error is.
This reason better refactoring alone means I can develop software faster when I get the hang of things.
After watching Kevin Yank's presentation I understand that ELM has its pain points. Nevertheless, it's a great language to learn. Plus kind of an introduction language to static typing.
Elm is a great introduction to functional programming. It also shows you an interesting way to create UIs (Model-View-Update) without depending on heavy framework abstractions. This point may not be obvious at first, but Model (and Msg) are just ordinary user data types, and Update and View are just functions on the data types... nothing special about them. So most all the code you write are just your functions on your data types.
P.S. We use it in production.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.