5 ms·
Why I'm leaving Elm (2020)
- satvikpendem 2y agoI 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.
- benatkin 2y agoOne of the core team members mentioned in the article showed up on HN a couple weeks ago: https://news.ycombinator.com/item?id=42935516 https://news.ycombinator.com/item?id=42935516
- satvikpendem 2y agoCan you link to the comment specifically? This is just a link to the submission itself.
- Philpax 2y agoPresumably https://news.ycombinator.com/item?id=42954103 https://news.ycombinator.com/item?id=42954103, which does not really concern Elm.
- benatkin 2y agoHe’s the author of the article but only chimes in once. Sorry for not linking it, just wasn’t sure I wanted a Google Alert, but it seems likely at this point and I don’t mind. I’m somewhat undecided about Elm and Roc. Both are at least innovative.
- satvikpendem 2y agoNot sure what you mean by Google Alert, what is that regarding?
- benatkin 2y agoA Google Alert notifies when a search term, such as someone's name, appears online, so mentioning someone in a public comment might trigger an alert, causing them to notice it.
- satvikpendem 2y agoI see what you mean, that's probably pretty unlikely though as the vast majority of people, even developers or leads, don't set up Google Alerts.
- benatkin 2y agoThe “his comment” link here for this article: https://lukeplant.me.uk/blog/posts/why-im-leaving-elm/#forkability https://lukeplant.me.uk/blog/posts/why-im-leaving-elm/#forka... In the HN submission I linked, the author of the article is the same.
- satvikpendem 2y agoNow I understand, the author is (or was, I suppose) a core team member of Elm, I thought it were someone that commented on the post instead. I interpret "showed up on HN" to typically mean a commenter rather than an article author as typically many authors don't even realize their article was submitted to HN on any particular day.
- vosper 2y agoThe person in question (Richard Feldman) is the creator of Roc, which the linked article is about. He also shows up in the comments here https://news.ycombinator.com/item?id=42954103 https://news.ycombinator.com/item?id=42954103
- lolinder 2y agoAssuming that you're talking about Richard Feldman, he shows up regularly but not to talk about Elm—Roc is his new project, which is inspired by Elm but not trying to target the same niche.
- catgary 2y agoI kind of wish the effort spent on Roc was put into productionizing/commercializing Koka (which Roc draws a lot of inspiration from) rather than starting an entirely new language. Like I get starting from scratch when it comes to Haskell, since there’s so much baggage there, but Koka is a pretty blank slate.
- lolinder 2y agoKoka is still pretty much one person's project [0], and it's not for lack of PRs [1]. To push Koka forward at the kind of pace that Richard wants to move would require forking it or commandeering it, and it makes total sense that neither option is as appealing as just starting fresh. [0] https://github.com/koka-lang/koka/graphs/contributors https://github.com/koka-lang/koka/graphs/contributors [1] https://github.com/koka-lang/koka/graphs/contributors https://github.com/koka-lang/koka/graphs/contributors
- IshKebab 2y agoI think your second link meant to go to the open PRs... but anyway there are only 30 open PRs? That seems relatively low?
- lolinder 2y agoOh, yes, I pasted the same link twice! 30 PRs that have been open for a very long time untouched. The point is getting stuff merged into Koka is not easy.
- evmar 2y agoI don't really follow Elm, but I was curious and tried to see whether the project is still alive. It appears the last commits on GitHub are from mid 2024 and the last installable release was 2019. It appears the main developer is working on a new thing? There's definitely a "the bear is sticky with honey" confusion of discussion over whether it's dead or not. It would be nice for interested strangers like me if they could make some sort of clear statement on it.
- GiorgioG 2y agoIt's dead, maybe it just doesn't know it yet.
- FullGarden_S 2y agoNo, its not. They are focused on introducing ELM on the backend as well. ELM isn't backed by big corpos like Rust and Go do so their way of operation will differ by a huge margin than those two langs, especially in terms of marketing so its inaccurate to judge that its dead just due to the inactivity. https://www.youtube.com/watch?v=0SUM4869ODc https://www.youtube.com/watch?v=0SUM4869ODc
- santoshalper 2y agoDead means different things to different people, but there is no way in hell I'd start a new project using a niche language that hasn't been updated in almost a year.
- FullGarden_S 2y agoI see. I would though. ELM has a very simple, straight forward syntax and everything revolves around the ELM architecture, which makes the whole thing very intuitive. I believe a statically typed and functional language will do just fine without any update for years as long as the initial implementation is done right. Unless there is a need to add some new feature, there is not point in updating the language if all the essentials were well implemented already. ELM compiles to JS and not to a native architecture. It'd be inappropriate to view ELM like one would view languages like C or any that uses LLVM as its backend.
- josephcsible 2y agotl;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.
- taurknaut 2y agoYup, that's a failed language.
- titanomachy 2y agoWeird. Why can’t you patch your local version to include the name of your project?
- benatkin 2y agohttps://youtu.be/E99FnoYqoII?si=r22RK3xy3NJoDnQr https://youtu.be/E99FnoYqoII?si=r22RK3xy3NJoDnQr
- x0x0 2y agoThat's a poor analogy. Rails has always had "here's a sharp knife; be careful with it, but you're an adult so use it how you will" philosophy. So Rails comes with recommendations for use, but not mandates.
- zem 2y agoif your project is a library no one can use it without a similar patch
- chefandy 2y agoAppreciate it. I got through about 10 paragraphs of preamble and disclaimers before giving up. I’m sure this document is what the community and author need it to be, but only being interested in the technical takeaways, your comment at least helps me know what to skim for.
- echelon 2y ago
- hombre_fatal 2y agoI 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.
- digitxpc 2y agoI'm still trying to wrap my head around the anti-forking sentiment among the community and how tight the governance structure of the project is. Open source is hard, and people will always have unfair expectations of open source, but if I'm to take the article at face on the forking drama, what's so bad about letting people tinker with it and release their own forks of Elm? If you're burned out, what's the harm in letting others step in more?
- crote 2y agoBecause it means having to give up control and accept that other people are going to contribute - even when they don't follow your own long-term vision. The Elm Vision is that every library should be infinitely powerful, trivial for novices to learn, and written 100% in Elm. Any deviation from this is seen as a failure of the entire Elm project and a personal embarrassment. The problem is that these standards are way too high and essentially impossible to achieve for any nontrivial library. The biggest risk of letting other people step is that they may succeed. They're going to write code which is incredibly useful to a lot of people, and it's going to become popular. But those developers aren't strictly following the Elm Vision. They are pragmatic, and they are willing to cut some corners in order to actually ship something. This of course leads to difficult questions like "It works great in library XYZ, why don't we just adopt that in Core Elm?". But you can't, because it breaks your Elm Vision, and you don't have infinite time and money to reinvent the wheel for dozens of core web features until it is 100% perfect according to your Vision. You're rapidly losing grip, and people start talking about a fork. Elm is becoming a success, but your Elm Vision is rapidly degrading and at risk of failing completely. You can't let them fork. You must maintain control. Your Vision must survive, and it's the only way. You've spent so much time and effort on this. You can't let it fail. It's your life's work. You don't want all that effort to go to waste. You don't want to be a failure. We just have to make sure everyone understands the Vision, and everything will work out okay. We just have to properly educate the dissenters and all will be fine. --- I don't live in Evan's head, so I'm not going to claim this is his train of thought. But if you're looking for a reason not to let other people step in, here's one possible explanation for you.
- jfuasdfjw 2y agoWonderful language ruined by toxic culture. What I use now in-place of Elm: purescript, roc, gleam.
- cma256 2y agoStill 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.
- casey2 2y agoI would recommend people learn the assembly language for the computer they own and then a high level language like c or shell. Far too many developers these days don't know anything about computers. Going into your kitchen and making some food with the ingredients you have will always be, to use a buzzword, more sustainable than ignoring the state of the kitchen and saying make me an omelette, or worse calling up uber eats which isn't even sustainable if you pay.
- ericyd 2y agoWhat a strange non sequitur, for what reasons do you believe learning assembly is worthwhile and how does it relate to this discussion about Elm? Also the food analogy does not make sense to me.
- zahlman 2y ago>and then a high level language like c or shell I think it's been decades since I last saw a phrase like this used unironically.
- pyrale 2y agoAs a former Elm production user, the article is spot-on about why I moved on from the Elm community.
- fortran77 2y agoI 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
- jgilias 2y agoMe too. It’s one of the big “could’ve been” in my opinion. Though I’m convinced it didn’t reach critical mass purely because of community management issues mentioned in the post. Too many people just threw their hands in the air and divested from Elm because of it. Not everybody wrote a blog post about it.
- wk_end 2y agoWhile those community management issues probably didn't help, I don't think Elm's failure to break out can be placed purely on their shoulders. The big reason why it - and all the other typed/functional compile to JS languages (PureScript, Reason, etc.) - remained niche is because TypeScript came along. It integrated with the ecosystem more seamlessly, was instantly comfortable for JS devs, and was backed by MS who gave it first-class support in VSCode. Arguably TypeScript is not as good as those other languages, but none of them are better enough to overcome those network effects.
- int_19h 2y agoTypeScript is as old as Elm, though. Arguably more so when you consider prod deployments.
- deleted 2y ago[deleted]
- alphazard 2y agoThe 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 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.
- santoshalper 2y agoYour defense of the Elm leadership team is far more vague than the article criticizing it. He is very specific about limitations of the platform and the behavior of the leaders. You, on the other hand, are very hand-wavey in their defense "sometimes you just have to say no and piss people off". Do you believe these decisions were good ones? Do you believe they were done the right way?
- gregors 2y ago>>>> That's his decision to make and he doesn't owe anyone anything. If you want continued support, pay up. Completely correct, and the users of Elm also don't owe him anything. They are free to hold their opinions and free to move away from Elm ...and they did. In the end Elm will be remembered for being an extremely interesting technology but mainly failed in industry due to poor project/community relationship. Sometimes interesting tech just isn't the right fit for business. C'est la vie.
- pyrale 2y ago> 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 two different topics. The work situation Evan had with NRI is completely unrelated to what he and the core team decided to shape the community into, which is the subject of TFA's criticism. > That's his decision to make and he doesn't owe anyone anything. In the world of emergent programming languages, the language author isn't the only one taking risks. Early adopters do have skin in the game, and their work spent growing the ecosystem is valuable. Sure, I get that Evan doesn't owe work to anyone. However, he also made sure that everyone in the community had to rely on him, and that's the issue. In retrospect, Luke Plant correctly identified the risks Elm's community management style created, and eventually these risks came to materialize. For these reasons, I can't advise people to touch anything Evan does in the future. > Elm's governance and process are what made it such a delight to use. I guess you haven't been personally contacted by a member of the core team trying to steer you into changing course on a technical topic. That interaction was not delightful.
- adius 2y agoElm is not dead. Here some recent commits: https://github.com/search?q=stars%3A%3E1+language%3Aelm&type=repositories&s=updated&o=desc 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 https://elm-lang.org/community
- machine_ghost 2y agoIt may not be dead, but it does seem a bit stagnant. Based on Google Trends at least (https://trends.google.com/trends/explore?date=today%205-y&geo=US&q=elm&hl=en https://trends.google.com/trends/explore?date=today%205-y&ge...), Elm has the same general interest level as it did five years ago (despite going up a bit in-between).
- smitop 2y agoMost people searching for "elm" are researching elm trees, not the language - the highest search activity was in May 2010, before Elm existed.
- felixguendling 2y agoI asked "Ask HN: Is Elm dead" in 2022 with mixed results. https://news.ycombinator.com/item?id=31485011 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.
- satvikpendem 2y agoI saw these threads pop up here and there over the years, always funny to read comments (even in this very thread!) about how (paraphrasing) "good ideas take time" and "the creator shouldn't add everything people are asking for into the language," meanwhile the last release is still 0.19 in 2018 and I honestly don't know what Evan and the core team have been doing with regards to Elm since then. There's a vast gulf between being prudent with feature additions, and doing effectively nothing at all. Of course a language that preaches the former but materializes the latter would die sooner or later, as people get fed up with the lack of updates. And in the meantime, TypeScript just gets better and better.
- jaredklewis 2y agoLike even no updates since 2018 might be ok if Evan et all communicated more about the goals and direction of the project Evan especially wrote and spoke a lot about his philosophy re: the project which I think can be fairly summarized as “everyone just sit down and shut up.” But that’s not a lot to go on when trying to evaluate if a project has staying power, mature governance, and so on.
- fmbb 2y agoTangentially, 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?
- giraffe_lady 2y agoI have used rescript quite a lot but never really ran into problems like that with the tooling. The tooling is pretty twiddly so I'm not surprised. But for me more in how it integrates with "normal" frontend tools. It's easy to wire it up in a way where the compiler doesn't always get all of your most recent changes, or the compiled artifacts aren't picked up by the js bundler correctly. Anyway I have since switched to gleam, mostly for project governance and tooling reasons! The particular way rescript ended up eventually emerging from the reason/bucklescript schism I think just had it shed a lot of interest and goodwill. The core of the language is so so strong (because of ocaml) but they seem almost embarrassed by the ocaml connection and seem to be trying to distance themselves from it. They've implemented a new standard library that reproduces mutable JS semantics and I just think that's a big step back too. Gleam is a HN darling that comes up all the time but it's in a really great spot for being such a young language. Very very similar semantics to rescript if you're targeting JS, rock solid standard lib, tooling is very good, package ecosystem surprisingly robust and high quality. It's not always obvious if a library supports js targets or erlang or both, and I hope they address that soon. I think they have a much clearer idea of what they want to accomplish than rescript does so I switched. IDK check it out, I originally ended up in rescript looking for an elm replacement and now I've ended up here.
- MortyWaves 2y agoI want to use rescript but the unit testing story seems non-existent, there's some vague mentions of using Jest which is just an awful choice. If there's a way pf using Vitest with it, or something at all, that would be good.
- kazinator 2y ago> native modules in Elm allow you to write part of an Elm module in Javascript LOL
- kazinator 2y agoI 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.