from Hacker News

Why I'm leaving Elm (2020)

by flykespice on 2/16/25, 4:57 PM with 87 comments

  • by felixguendling on 2/16/25, 8:53 PM

    I asked "Ask HN: Is Elm dead" in 2022 with mixed results. https://news.ycombinator.com/item?id=31485011

    IMO it's safe to say that Elm is dead and won't come back with this attitude of the core team (which is not the only problem of the language). We never switched to Elm 0.19 from 0.18 but moved on to rewrite in Svelte 5 with TypeScript and never looked back.

  • by satvikpendem on 2/16/25, 6:17 PM

    I remember reading this article when it was published, it seems like everything said continues to be true about Elm, so much that I don't hear about anyone using Elm these days, as even those who have used it as legacy code have now largely had enough time to migrate away.
  • by alphazard on 2/16/25, 8:43 PM

    The author is critical primarily of Elm's governance and processes, and claims that these are what killed the project. I don't think that's entirely true. There was a recent interview with the creator of Elm here.

    https://www.youtube.com/watch?v=0SUM4869ODc

    I'd encourage everyone to watch that as a grain of salt to TFA. It seems like the project leader felt he was being taken advantage of, and was just not getting out as much as he was putting in. That's his decision to make and he doesn't owe anyone anything. If you want continued support, pay up.

    Elm's governance and process are what made it such a delight to use. Instead of allowing the full spectrum of bad ideas in frontend development to slowly make their way into the language, the authors carefully curated a coherent set of good ideas. They said no to a lot of things, and cut out as often as put in. This is going to piss off a lot of people because it means saying no to a lot of people. Saying yes to those people would make the language worse; you can't have it both ways.

  • by cma256 on 2/16/25, 7:42 PM

    Still the best web language and framework ever introduced. Its influence is everywhere. Unfortunately no one implements all of it so they can never live up to the standard it set.

    I would recommend everyone avoid reading this article. It didn't accomplish anything. In the five years since writing nothing has changed and no alternative replaced it. Elm is not used because the JavaScript community chose something else not because of anything mentioned in this article.

    The core of the complaint is a lack of native modules. Fork the compiler and remove the few lines preventing it. Vendor your native dependencies and the jobs done. You can ignore whatever snide remarks you receive (assuming there's anyone in the world who still cares about this).

    If you've never used Elm I highly recommend taking this chance to learn it.

  • by jfuasdfjw on 2/16/25, 7:18 PM

    Wonderful language ruined by toxic culture.

    What I use now in-place of Elm: purescript, roc, gleam.

  • by fmbb on 2/16/25, 9:20 PM

    Tangentially, does anyone know how to actually get anything done with rescript?

    I feel like I would love it. It seems pretty darn awesome.

    But getting started on a MacBook Air 2018 seems like an exercise in defeat. Building the toolchain takes ages, I have tried twice just getting started and never got to compiling any examples.

    Is anyone using rescript for anything?

  • by adius on 2/16/25, 8:43 PM

    Elm is not dead. Here some recent commits: https://github.com/search?q=stars%3A%3E1+language%3Aelm&type...

    Since Elm compiles to JavaScript, all the new development features from JavaScript, HTML, and CSS are also instantly available in Elm. I.e. it's not necessary to change Elm all the time to keep it up to date with the web platform. For non-stop Elm content check out all the communities at https://elm-lang.org/community

  • by fortran77 on 2/16/25, 8:24 PM

    I loved Elm, and it's disappointing it never achieved critical mass. We wrote a few front-ends with it about 6 years ago. Very easy to write, debug, and deploy
  • by kazinator on 2/17/25, 4:38 AM

    I don't like this kind of diatribe.

    Evan this, Evan that.

    Yes, if the license on the thing is open source, it is open source.

    People don't owe you being in their community or whatever.

    Fork it, get your shit working, don't tell anyone.

    When you fork, change the name. Even GNU projects prohibit forking under the same name; you can't fork GNU Emacs and call your forked project GNU Emacs.

  • by josephcsible on 2/16/25, 6:26 PM

    tl;dr: the Elm compiler has a hardcoded whitelist of projects allowed to use certain critical language features, and anyone who releases a fork of the compiler without that antifeature gets banned from the project's community.
  • by kazinator on 2/17/25, 3:17 AM

    > native modules in Elm allow you to write part of an Elm module in Javascript

    LOL

  • by hombre_fatal on 2/16/25, 6:48 PM

    I think this post captures the wave of entitlement among a group of Elm participants of that era that led to what looks like catastrophic burnout in evancz, Elm's creator.

    It's been a while since I watched them, and I recommend his talks, but at least one or two of his talks are centered around what is basically unfair expectations. In one talk, [bad paraphrasing, but] he compares how people's expectations of him and Elm aren't much different than the expectations they have of languages with millions of dollars of corporate support behind them, and people don't temper their their expectations accordingly when dealing with him.

    You just know it's a shit show starting a language and then having an increasing amount of your time pilfered by people who think because they are a big fish in your small pond (ecosystem), they deserve a level of command they would never expect from, say, React or Javascript or SwiftUI or Swift.

    I still use Elm for personal projects. It's the one stack I've used where I can revisit a project I haven't touched in ten years and instantly push out a new feature. Just by writing the code I want to exist and then backtracking through type errors until it's implemented (that really never gets old). It makes a lot of sense for personal projects for that reason which tend to accumulate infinitely.

    I always kinda wonder how evancz would describe his experience off the record, friend-to-friend.