I have to admit I’m not a computer scientist by formal training but I did take a couple of intro to programming as part of my curriculum. I was greeted into programming by C++ and for the most part I didn’t know what was going on. Regardless, I felt it natural to define my types and be very specific about what libraries I need to use to have the black screen pop up with the output my program was supposed to spit out. As time progressed, I found myself playing/working with MATLAB, I thought it was amazing because I didn’t have to bother with type declaration or anything like that. To me it was bliss, but to others it was a ‘glorified calculator’.
That was also the first time I came in contact with a ‘language’ being put down for a crime I assume was, not being statically typed. I didn’t think much of it and continued the rest of my life… until I started developing.
I came to this conclusion during a MeetUp in which the speaker David Walker contextualized Elm in terms of why it’s useful and how has it influenced modern frameworks, among other topics. All while expressing skeptic optimism.
In my opinion, the biggest argument to be made about Elm’s usefulness comes from the fact that it enforces type checking.
Fully explaining why I believe this would likely result in a wall of text that could be easily picked apart, so I’ll just stick to one reason: Less errors. It feels unfair to have attended such a well presented and fairly timed presentation to come up with a two word conclusion, but it’s obvious that as programmers, we strive to have better code. As such, it only makes sense to see a language that enforces good code and reduces the need for some testing in a positive light.
All being said and thought, it’s still important to understand that Elm is a relatively new language and because of this, it should treated with caution. As a response to a question that I sadly can’t remember, David mentioned he doesn’t use Elm in production. Still, it seems Prezi has funded Elm development and companies like CircuitHub and NoRedInk are using it in production.