Luca Mugnaini - January 5, 2022
There is a post titled "Why I'm leaving Elm" written by Luke Plant in 2020 that regularly came out in Google searches related to the Elm language.
Even though the post was first published in April 2020, it is still mentioned in 2022 as a valuable reference to judge the Elm language, because it is "the most upvoted post in /r/elm, that’s gotta say something".
The post has been discussed enough within and outside of the Elm community so the main purpose of this response is to appear in the result of Google search, next to the original post, so to give some context to it.
In short, the post is mostly related to a loophole that was exploited by some developers and that was closed by Evan Czaplicki, the creator of the Elm language, during the release 0.19 of Elm in August 2018.
This was a well-anticipated modification. Evan was talking about this already in 2015(5 years before Luke published his post) and went to the extent of submitting PR with warnings in strangers' projects to dissuade them from exploiting the loophole.
Still, some of these developers felt entitled to use this loophole and felt betrayed when it was removed.
Entitlement for open source projects is an issue known also in other communities.
Some developers, unhappy with the closure of the loophole, simply stopped using Elm. Others decided that just leaving was not enough but preferred to express their frustration with a “Why I am leaving x” type of post. The rest of the developers kept using Elm, as they agreed with Evan's removal of the loophole was the right decision.
About the other topics mentioned in the post, Evan gave a comprehensive response so there is not much to add.
I would just like to give a couple of advice.
If you are looking for an open-source language that you can easily modify at the core level steering the design away from its already established goals, then Elm is not for you.
If instead, you are interested in a new way to create web applications, based on a purely functional language that is beginner-friendly and guarantees no runtime errors, Elm can be what you are looking for.
The best way to evaluate if Elm is a good fit for you is by joining the Elm community in Slack, talking to people that are using it in production, watching videos, listening to podcasts, and building something with it.
And in the end, if you like and decide to use it, remember that there are many ways you can also contribute to it and its ecosystem.
Happy to see you on the other side ❤️