Road to Elm 1.0

(elm-lang.org)

285 points by wolfadex10 hours ago

37 comments

  • bbkane8 hours ago
    I think of Elm more as an incredibly influential research language these days.<p>It&#x27;s very focused, there&#x27;s no public roadmap or official support and the leadership (which is far as I can tell is just Evan) is uninterested in most (any?) community building or core team building.<p>But MAN is it nice to work in. This has resulted in several forks&#x2F;spin-offs. At the recent Gleam conference, Louis Pilfold joked that every Elm user maintains their own compiler :). There are at least 6 of them (two more got announced in the last month, even as the community keeps shrinking).<p>So I&#x27;m glad Evan is now working towards 1.0. Maybe folks can call Elm &quot;finished&quot; and one of the successors can do the hard work of unifying some of the forks and growing the community.<p>Personally, the next time I&#x27;m looking for an Elm-like thing, I&#x27;m going to check out Gleam + Lustre. Seems to have a nice mix of maintainers that care about community and design. And it works on frontend + backend!
    • brokencode7 hours ago
      Yeah Elm has had a very strange arc, but I think calling it a research language is right.<p>There was a period where it was heavily evangelized. Many blog posts were written and talks given, and there was a lot of enthusiasm and adoption.<p>Then the author just kind of disappeared and the project stalled.<p>Which of course he had a right to do since it’s his project, but I think he should have set expectations better from the beginning.<p>The heavy evangelism helped spread the ideas, but also set up developers to feel blindsided and abandoned.
      • Aurornis6 hours ago
        &gt; Then the author just kind of disappeared and the project stalled.<p>There was more to the story than that. They made some major breaking changes in v0.19 that broke a lot of apps and left no path for them to continue with Elm, then dug their heels in when the community protested.<p>If you had an app at your company that used the features they decided not to allow any more, you either had to start deciding which fork to follow or start planning to rewrite your app in something else.<p>That evangelism turned into an uncomfortable gaslighting where half of the community was trying to tell you that this change was what was best for the language and that you didn’t really need that feature anyway.<p>There were several forks but I don’t know if any got traction. It felt like an already small community was fracturing into even smaller communities right after alienating a lot of people.
        • adastra226 hours ago
          What feature is that?
          • crote4 hours ago
            On top of the already-mentioned JS interop breakage, Elm 0.19 also dropped native Websocket support[0]. The API had issues (fair), so it was dropped rather than improving it due to wanting to do it perfectly (okay, I guess), buuut due to the JS interop restrictions this meant that 3rd-party experiments or alternatives were impossible (??), which meant that <i>any</i> use of Websockets was in practice now completely impossible! If I recall correctly something similar happened to other core libraries.<p>This &quot;nobody is allowed to do this until Evan himself has made time to come up with a blessed solution&quot; style of development left a lot of people quite disappointed. Elm was marketed quite heavily as the best thing since sliced bread and the future of front-end web development, but in reality it turned out to be just Evan&#x27;s toy language which you could look at but weren&#x27;t allowed to touch. Which is of course allowed, but it <i>does</i> rapidly kill any kind of community around it.<p>[0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;elm-lang&#x2F;websocket" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;elm-lang&#x2F;websocket</a>
            • hombre_fatal4 hours ago
              This really overstates the problem and situation.<p>Synchronous interop was removed from Elm. That sucks for synchronous stuff and anything too trivial to be worth async interop.<p>But async interop is still available. Anything networked, like websockets, is a natural fit for async interop. i.e. a Send(Req) | Recv(Res) port.<p>It&#x27;s fine to be mad that a &quot;BDFL&quot; decided on a different set of trade-offs than your preference, but that&#x27;s what happened.<p>It&#x27;s also a learning lesson for people who thought that a tiny, pre-v1.0 ecosystem that already had breaking changes would never break again especially in a way they disagree with. I think it&#x27;s time to just accept the lesson.
              • crote55 minutes ago
                I&#x27;m not mad, I&#x27;m <i>disappointed</i>. Elm was quite promising prior to this, but 0.19 essentially killed it.<p>And the problem isn&#x27;t just that sync interop was removed. That would&#x27;ve been <i>fine</i>. It&#x27;s the double-whammy of 1) killing sync interop, 2) making async interop libs impossible, 3) still allowing it for &quot;blessed&quot; libraries, and 4) gaslighting everyone else that they were Holding It Wrong.<p>Breakage is totally fine, I never expected anything different from Elm. But community-killing permanent core feature removal is a bit much, is it not?<p>I luckily never invested <i>too</i> deeply into the ecosystem so there wasn&#x27;t a lot dor me to &quot;learn&quot;, but it sure ruined any chances of me - and with me I bet a lot of other people - ever looking at an Elm 1.0 or Elm++, and considering the valuable insights gained from TEA that really is a shame.
                • bmurphy19765 minutes ago
                  Don&#x27;t fret it. Many of us were in the same boat. Evan can do whatever he wants, but we can also call it out when it&#x27;s wrong.<p>I personally made the same decision. It became very clear to me that Elm was not the foundation for me to build a business on.
          • wavemode6 hours ago
            Lots of things were disallowed in 0.19, but probably the most disruptive were that custom native modules were disallowed (which basically means that, only certain official packages would now be allowed to directly call native JavaScript), and the package manager was locked down (which means that you can only install packages from the official elm repository, not GitHub or anywhere else).<p>You can still indirectly call native JavaScript, in a message-passing kind of way (via Ports or custom elements) but these changes were still really disruptive to many codebases.
          • arthurbrown6 hours ago
            One form of JavaScript interop. Instead of being able to write bindings directly to native code, you had to pass messages through &quot;ports&quot; instead.<p><a href="https:&#x2F;&#x2F;discourse.elm-lang.org&#x2F;t&#x2F;native-code-in-0-19&#x2F;826" rel="nofollow">https:&#x2F;&#x2F;discourse.elm-lang.org&#x2F;t&#x2F;native-code-in-0-19&#x2F;826</a><p>Personally, I was sad to see signals and FRP go in 0.17<p><a href="https:&#x2F;&#x2F;elm-lang.org&#x2F;news&#x2F;farewell-to-frp" rel="nofollow">https:&#x2F;&#x2F;elm-lang.org&#x2F;news&#x2F;farewell-to-frp</a>
    • gdcbe3 hours ago
      The nicest thing of Elm is how much it feels like Haskell. Have built some fun things with Elm years ago.<p>The second nicest thing with Elm is the philosophy of if it compiles it works. And to be honest you can get that same feeling with most of Rust as well. Sadly not as much of a haskell feeling but at least it has a warm shadow of some of its functional ancestors.
      • epolanski2 hours ago
        Elm feels like a simplified Haskell which can handle a single space problem.
    • ethagnawl6 hours ago
      For whatever it&#x27;s worth, I&#x27;ve found Gren to be a very capable successor with an active and helpful community.
    • epolanski2 hours ago
      I&#x27;m one of those. I extended the language to support a bunch of niceties (essentially supporting a proper error channel and dependency injection through erasable sum types).<p>Elm is a nice language, but Ewan has no interest in building anything truly useful and the whole administration of the language is s disaster.
    • goosejuice4 hours ago
      I think because it&#x27;s so nice, that&#x27;s why people are disappointed in it&#x27;s stagnation. But the stagnation is partly why it&#x27;s so nice!
  • auslegung9 hours ago
    About two years ago I was experimenting with ChatGPT vibecoding a snake game in the browser in elm, because elm is my favorite language. It was rough going and I concluded at the time that LLM‘s might kill elm. Today I use elm in production and LLMs are vastly better at it, and if anything I think LLM‘s might increase elm adoption because it is the ideal language for an LLM right now. It’s a simpler language than most, it’s stable, it has an opinionated architecture built into the language which causes most code bases to be very similar to one another
    • giancarlostoro8 hours ago
      On that note, because of AI I&#x27;ve been more into music, bought a midi keyboard, got real DAW software setup. I&#x27;ve also finally built more and more with Rust, and have been reading more Rust docs. LLMs should never be an excuse not to learn the things you&#x27;re using it for, those are the bad engineers. An LLM affords me the time to research and learn what it gave me so I can maintain it. It&#x27;s easier to prompt about the problem if you understand it.
      • eddd-ddde5 hours ago
        This is very similar to my recent experience!<p>LLMs are surprisingly effective at helping you learn the &quot;vibes&quot; of making music and understanding various concepts.
      • yonaguska6 hours ago
        If you have a blog or something anywhere, I&#x27;m very interested in your journey.
    • hollowturtle7 hours ago
      &gt; I think LLM‘s might increase elm adoption because it is the ideal language for an LLM right now<p>Yes but no? It really just depends on the amount of elm in the training data and rlhf. I agree that structured frameworks&#x2F;languages have codebases more similar to one another and that would ease generation. But that alone won&#x27;t work and usually dev adoption is a total discourse per se
      • RussianCow7 hours ago
        That&#x27;s not why Elm is an ideal language for LLMs: it&#x27;s because, if it compiles, it&#x27;s most likely working software. Agentic workflows have gotten significantly better over the last year, so LLMs using languages like Elm, Haskell, or even Rust have an amazing feedback loop where even lower quality models can keep trying until things compile.
        • hollowturtle2 hours ago
          can keep failing til you&#x27;re tired of having the agent running in loops, as I said it doesn&#x27;t matter, agent tools are more effective with models trained with a lot of elm examples
    • rapind8 hours ago
      Maybe it&#x27;s improved, but I was very disappointed to find agents constantly tripping over significant white space with Elm (Claude Code). Always struck me as strange since they are very proficient with python... and Elm has been one of the most stable modern languages (so stable that people complain about it never changing!). I think the last time I tried was a year ago though, so I assume it has improved.
      • rupertlssmith6 hours ago
        LLMs are way past that, Claude Code can very competently write Elm code now, for example.
        • rapind4 hours ago
          Good to know. I built <a href="https:&#x2F;&#x2F;github.com&#x2F;pairshaped&#x2F;hypertea" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;pairshaped&#x2F;hypertea</a> to get some of Elm&#x27;s safety in typescript while being easy for LLMs to use (this is basically just hyperapp in TS, with added elm-like guardrails). Maybe I&#x27;ll go back to Elm now that LLMs are handling it better.
      • rgoulter5 hours ago
        &gt; I think the last time I tried was a year ago though, so I assume it has improved.<p>I noticed that coding agents seemed to get pretty good around 2025 Oct&#x2F;Nov.<p>If it&#x27;s improved? My experience with Nickel-lang (probably as not-in-training-data as Elm) is coding agents have improved with this compared to last time I tried.
      • auslegung7 hours ago
        I started working with Elm in production again about a year ago and have bounced back and forth between codex and Claude code and haven’t noticed whitespace problems, so I would conclude it’s better but of course your mileage may vary
        • rapind7 hours ago
          I was already working with elm (have been since Signals) and I was very disappointed in what agents (CC) produced. In contrast, I was pleased with the Rust code they produced.
    • katemaster0098 hours ago
      Fair point. I hadn&#x27;t thought about it that way, but I would still hesitate if the ecosystem isn&#x27;t moving forward.
  • surprisetalk9 hours ago
    I wrote a thing in 2023 about why I&#x27;m still using Elm:<p><a href="https:&#x2F;&#x2F;taylor.town&#x2F;elm-2023" rel="nofollow">https:&#x2F;&#x2F;taylor.town&#x2F;elm-2023</a><p>It&#x27;s 2026, and I&#x27;m still using Elm for all the same reasons :)<p>As an added bonus, Claude seems to play very very nicely with Elm:<p><a href="https:&#x2F;&#x2F;taylor.town&#x2F;diggit-000" rel="nofollow">https:&#x2F;&#x2F;taylor.town&#x2F;diggit-000</a>
  • lambdas8 hours ago
    Did the restrictions on JavaScript get resolved? IIRC, they made it so you had to use their “Ports” mechanism to interface with JavaScript, and you couldn’t write your own wrappers.<p>There was some drama when someone forked it so you could write your own JavaScript wrappers&#x2F;FFI too?
    • miniBill8 hours ago
      FFI is still mostly done through ports (or web components, for the view part). This is an intentional choice and likely to stay until 1.0 and beyond
      • crote4 hours ago
        And combined with its inability to provide mature native APIs and its hostility towards libraries containing ports, this essentially kills the language.<p>Elm&#x27;s current story for interacting with the wider web ecosystem is &quot;reinvent the wheel a dozen times by DIYing your own wrappers around literally everything&quot;. Fine for a trivial toy project, not fine for building production software.<p>I understand <i>why</i> they made those decisions, and each choice on its own <i>is</i> logical, but that doesn&#x27;t make the combined outcome any better.
      • 1-more6 hours ago
        You can also do lunatic things like overload the `Object` prototype and get synchronous FFI by encoding then decoding an object. I do this at work to get locale-aware sorting. I know you know this, but it&#x27;ll be news to others in the thread.
  • OhSoHumble9 hours ago
    Oh my God, I had no idea this project was still alive. I don&#x27;t mean to throw any shade but I had assumed that the lid was on this turkey.
    • hobofan9 hours ago
      The project was dead. The previous release was 7 years ago, where it stopped because the creator (same as author of this announcement) stopped maintaining it and since the community hasn&#x27;t progress beyond a BDFL-model that&#x27;s where it died.<p>So it was dead, it just now has been resurrected (and AFAIK with a whithered community in the meantime).
      • G4BB3R4 hours ago
        Not dead, Evan was working on Acadia (elm on db) which is about to be released, to make Elm development and funding more sustentable.
      • asgr9 hours ago
        your definition of dead is elms definition of stability, I think :D haha<p>javascriptland really warps peoples minds on stability and project-liveness
        • idoubtit8 hours ago
          &gt; your definition of dead is elms definition of stability<p>If Elm&#x27;s definition of stability is keeping bugs and runtime errors for years, then I&#x27;m glad I stopped using Elm long ago.<p>Not only were the issues unaddressed, but for the past years the PR got no human response. For instance this one¹ fixes infinite loops in the core. [¹]: <a href="https:&#x2F;&#x2F;github.com&#x2F;elm&#x2F;core&#x2F;pull&#x2F;1137" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;elm&#x2F;core&#x2F;pull&#x2F;1137</a>
        • kccqzy8 hours ago
          You are not entirely wrong, but there’s still a difference between being dead and very stable. Among the languages that compile to JS, I would look at ClojureScript as the prime example of stability rather than Elm. I mean Elm has removed features breaking compat; ClojureScript doesn’t do that.
          • iLemming2 hours ago
            &gt; ClojureScript doesn’t do that.<p>I remember when Rich Hickey was asked &quot;what feature of Clojure you regret and would like to remove?&quot;, he said: &quot;None. Doing that would break stuff for people&quot;.
          • hobofan8 hours ago
            &gt; I mean Elm has removed features breaking compat<p>To be fair, Elm hasn&#x27;t made it to 1.0 (yet). That&#x27;s where languages should make breaking changes before being stuck with the flaws forever.
            • crote4 hours ago
              ... which is totally fine, but that&#x27;s also why you can hardly call it &quot;stable&quot;.
        • Aurornis8 hours ago
          &gt; your definition of dead is elms definition of stability, I think :D haha<p>The Elm community (or those who remained anyway) has a very cult-like way of spinning the current status quo as being good for you, even if it’s not.<p>Removing native JavaScript interop in 0.19? They’re just making it more pure! Sorry your project had to become impossible to continue on Elm, but this is the price we pay for a leader with vision.<p>No appreciable updates or bug fixes for 7 years? That’s just stability! Look how stable and mature it is that it can go 7 years without a release!
          • goosejuice4 hours ago
            Were people forced to use elm prior to a 1.0 release or something? Is Evan being accused of baiting people with a lovely experience and then bailing? I&#x27;m not really familiar, so maybe the ball was dropped in some kind of contract I&#x27;m not aware of.<p>If not, the expectations you and many have here seem pretty unreasonable. There&#x27;s room for projects like Elm. Not every PL has to meet the demands of every single non paying user of the community.
            • zdragnar3 hours ago
              Elm was very heavily evangelized for a while, and people were using it. Had there been a migration path through the breaking changes, it would have been a lot less disruptive.<p>Even if there had just been incremental bug fixes, I suspect between some and most people would have gotten over it, but seven years of silence is a very long time- long enough for an entire generation of new developers to start calling themselves seniors knowing only that Elm has stalled and shouldn&#x27;t be used, because the controlling developers are unreliable and prone to giving the appearance of abandoning the language.
        • hobofan8 hours ago
          I&#x27;ve head the displeasure of working with more than one Elm zealot in the past, and also allowed a service to make it into production (which was a huge disaster). Due to that, I know a lot more about Elm than I&#x27;d like to.<p>I think the &quot;Elm is stable not dead&quot; seen from the few people that stuck around with Elm is largely cope for being stuck with an unmaintained language. Languages, like all other pieces of software need maintenance or they degrade in the world moving around it (e.g. there is&#x2F;was no official aarch64 build of Elm in the period of non-maintenance).<p>I also would say that Elm is still largely unfit for most realistic production scenarios, unless you have the manpower to build everything from scratch, as interoperability with the outside web world (JS&#x2F;TS) is an afterthough, and by some parts of the community not desired.
        • jlengrand8 hours ago
          This, 200 times. No weekly news does not mean dead. In some specific places like this one, it means stable. (And also arguably, for good or bad reasons, why it will never become mainstream).
    • donatj8 hours ago
      I&#x27;m not deeply involved in the community, but I know people who were, and my understanding is the removal of custom infix operators lost a lot of community support. Very popular feature removed specifically because the creator of the language didn&#x27;t like it, and despite large community cries for it to remain.<p>In my eyes, it was probably the right decision technically, but deeply unpopular and probably the wrong decision socially.
      • dunham4 hours ago
        Not exactly removed, the feature was still there, but could be used only if your module was in Elm namespace (the compiler checked). It was kind of a &quot;no soup for you&quot; situation, which bothered me.<p>Elm served its purpose for me - an example of a small language with great tooling and error messages. And the strictness was helpful in learning to do things the &quot;proper&quot; way in the Elm model, even if I did reach for escape hatches in later projects. E.g. writing a notion-like application in Elm, I had to walk through my data twice - once to render it and another time to collect cache misses. With hyperapp, I broke purity a little and accumulated the information on the side.
    • kayo_202110309 hours ago
      I&#x27;m glad it&#x27;s back. Elm had such a remarkable elegance I was always rooting for it.
    • subarctic9 hours ago
      Same, I basically assumed the community around it had died out. But i guess the sole maintainer&#x2F;creator is still around.<p>I never used elm except for doing a tutorial, but lately I&#x27;ve built a full stack gleam app (using coding agents for the most part, with a lot of control in the beginning on the structure of the code) and have found that process works quite well
    • ale9 hours ago
      I know right. I’m glad DSLs have fallen out of fashion. Just use the platform.
      • chipdale8 hours ago
        I can understand why developers might not care for DSLs, especially when they force a choice between entirely different toolsets and toolchains.<p>However, I feel people often miss the real value of a good DSL: it&#x27;s not about the syntax, but about providing hardened semantics that can bolster or guarantee desired qualities. Elm, for instance, provides value insofar as it makes producing runtime exceptions significantly more difficult.<p>Personally, I hope languages like Lean, which provides exceptional support for creating DSLs within the language, renew interest in semantically sound DSLs, especially if we insist on using LLMs.
        • lioeters7 hours ago
          I recently learned about that too, how Lean provides ways to create new language syntax and DSLs, which is (on the surface) similar to Lisps like Racket. It&#x27;s like operator overloading but way more flexible and general purpose. I&#x27;m wary of such language features, convenient for specific purposes (like working with vectors or matrices) but I&#x27;m afraid it&#x27;s too powerful for normal usage, if everyone starts building their own DSLs and syntaxes, it would likely make the typical codebase difficult to read and understand. For example, the C++ template metaprogramming madness, it <i>can</i> be used responsibly but in my opinion it was detrimental to the language ecosystem.
    • pseudocomposer8 hours ago
      I’ve been using Elm professionally at a very profitable, lean company the last two years. (Didn’t know it coming in, but had enough React, Redux, and other experience to learn quickly.) The Elm community would call this a feature. How much React code you wrote 6-8 years ago will work perfectly and identically with today’s React toolchain?<p>It’s a whole different set of values. Good React code in 2026 looks like any compiling Elm code since 2016.
      • dminik8 hours ago
        Any code you wrote on a React version from 6 years ago will still work the same on that React version today. Let&#x27;s make that a fair comparison.<p>I get that some people like stability, but that is quite different from going without updates for 6+ years.
      • square_usual7 hours ago
        &gt; How much React code you wrote 6-8 years ago will work perfectly and identically with today’s React toolchain?<p>Today&#x27;s Elm toolchain is the Elm toolchain of 6 years ago!
      • OhSoHumble8 hours ago
        Oh yeah, no shade against the language itself. I had fun learning it and using it for some toy development years ago - and the TEA still exists in multiple library implementations. Just wild to see the creator of the language emerge from the fog like that.
    • shiqi_Rao9 hours ago
      wow careful, this turkey still has some kick left in it!
  • adamwk4 hours ago
    I can’t think of a worse announcement for your road to 1.0. Who cares? Without localization or accessibility support, it doesn’t make sense to call your UI framework production ready with a 1.0 version. I think limiting what third-party contributors can bridge from browser APIs killed Elm’s momentum for anything but toy projects. It now seems more like a sandbox for Evan to play around with compiler ideas than something meant for production use.
    • shamsartem3 hours ago
      I don&#x27;t think what you say is accurate. I maintain an Elm app and it is fully localized and I think it has a pretty good accessibility<p>Localization is done using one big record for each language, that I just pass into each part of the aplication that uses strings. It&#x27;s very convenient cause I can use simple functions in the record where they make sense for plurals and special cases in different langauges<p>Accessiblity is achieved with a combination of good html, ports and in some complicated cases (autocomplete-typeahead) - web components
    • kubb3 hours ago
      I say let him cook. The real ones will know when it&#x27;s good and ready, and hype driven folks can&#x27;t be saved anyway.
    • crote4 hours ago
      On the one hand, it&#x27;s good to see Evan&#x27;s doing fine. He has some pretty good ideas about language development, and Elm has inspired quite a bunch of <i>very</i> interesting projects.<p>On the other hand, seven hears of absolutely nothing, then a small compiler performance bump, and calling it the &quot;road to 1.0&quot;? No offense, but why bother? She&#x27;s dead, we&#x27;ve grieved, and we&#x27;ve long since moved on. Until there&#x27;s something <i>genuinely mindblowing</i> to release, I don&#x27;t think many people are going to care.
  • chuckadams8 hours ago
    I&#x27;m interested less in getting to Elm 1.0 than getting past Elm 0.19, which is the version that locked out all native modules that weren&#x27;t officially blessed by Elm&#x27;s author. Far as I can tell, that pretty well marked the end of Elm.
  • iamwil1 hour ago
    I think Evan&#x27;s pointing at something, and everyone&#x27;s looking at the finger. I don&#x27;t think this is really about Elm at all, but the preparation for Acadia.<p>In his talk, Economics of Programming Languages <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=XZ3w_jec1v8" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=XZ3w_jec1v8</a>, he does reveal a peek at what he&#x27;s been working on for the past seven years: a query language with functional ideas applied to them.<p>He points at the boundaries in web apps that typically destroys type information: - language &lt;-&gt; storage - storage &lt;-&gt; wire<p>What if we could preserve the type information across these boundaries? What would that buy us? One answer he had was easier migrations. They&#x27;d just be a type diff, rather than hand-written SQL.<p>So I think the right question is, can we infer what Acadia is going to be like given the changes he&#x27;s shipping with Elm? What does incremental compilation give query languages?
    • crote50 minutes ago
      &gt; I don&#x27;t think this is really about Elm at all, but the preparation for Arcadia.<p>Considering Elm&#x27;s history, why should anyone trust that Arcadia won&#x27;t work out the same?<p>No matter how good his ideas are, if Arcadia doesn&#x27;t have a more future-proof community-focused development model <i>nobody</i> will adopt it. At best it&#x27;ll end up being &quot;the project that inspired XYZ&quot;.<p>Evan might think it is about the Next Big Thing, and he might even be right, but after Elm will the world care enough to listen?
  • willdr8 hours ago
    Did they walk back that thing where certain language features could only be used by the Elm team? That seemed like a language-killer to me.
    • Munksgaard8 hours ago
      Nope.
    • jacobjuul8 hours ago
      what?
      • sheept5 hours ago
        In Elm 0.19, they removed the ability for third party packages to provide native bindings for JavaScript APIs that the language or its official packages didn&#x27;t yet support.[0] The only alternative proposed by Evan is to use ports, which are about as ergonomic as calling a function in a web worker.<p>[0]: <a href="https:&#x2F;&#x2F;discourse.elm-lang.org&#x2F;t&#x2F;native-code-in-0-19&#x2F;826" rel="nofollow">https:&#x2F;&#x2F;discourse.elm-lang.org&#x2F;t&#x2F;native-code-in-0-19&#x2F;826</a>
        • 1-more1 hour ago
          there is also web components (best way to do a &quot;copy this to clipboard&quot; button in my experience) and secret back door synchronous FFI through overloading the Object prototype. In all cases the communication is gated through decoders&#x2F;encoders that can fail; you can only pass serialized data across the boundary from JS to Elm.
  • song_synth4 hours ago
    Any insight on comparing Elm to Yew?<p>I once wrote a frontend webapp with Elm. And with backend server in Clojure, it made as much sense as Elm five years ago, right? :)<p>For the past two years I&#x27;ve instead used Yew, a rust crate for building UIs. It can look like react or like Elm, it&#x27;s up to <i>you</i> for how you <i>yew</i>s it ;0)<p>My latest app uses The Elm Architecture in Yew. It has been fantastic.<p>I think the biggest benefit Elm has over Yew is its access to the node js ecosystem through Port. You can interface with any npm package if you (or your AI) can write a port for it.<p>So far my best integration with yew dev has been using inline script tags (eek!) where I have to inject some external JS.
    • 1024bits1 hour ago
      I don&#x27;t know about <i>Yew</i> but I&#x27;ve been using Iced 0.14 which is also a Rust crate inspired by the Elm architecture. It seems like Yew is specifically geared towards web applications, which I suppose is in some ways closer to the original Elm project.<p>What is your app? Is it intended for personal use, or commercial?
  • whichdan9 hours ago
    There&#x27;s a lot to love about Elm, and I&#x27;ve written quite a bit of production code with it starting around 0.18.0. But in 2026 I&#x27;m not sure why a company would newly choose a language that hasn&#x27;t otherwise been updated in nearly 7 years.
    • auslegung9 hours ago
      Stability. It works. Frequent breaking changes to core functionality of your tech stack is not a feature, it’s a bug.
      • Munksgaard9 hours ago
        Does it though? They are many longstanding bugs reported in their compiler repository, and this release doesn&#x27;t seem to address any of them.
        • auslegung7 hours ago
          Longstanding issues that prevent usage? Not for me and the projects I’ve been apart of. No doubt there are plenty of reported issues, and no doubt they truly negatively impact some users, but I would still much rather choose the usability and stability of Elm 0.19.1-2 than anything in the typescript ecosystem today
          • sheept5 hours ago
            When I worked on an Elm app in 2020, my users reported compatibility issues with various browser extensions (e.g. Grammarly, 1Password). I personally would prioritize making my apps usable for my users over making the DX usable for myself, so I stopped using Elm for future projects.
            • 1-more3 hours ago
              Oh yeah those are a bear: grammarly, 1password, and darkreader were the big ones, but translation was too. Elm assumes it&#x27;s the only thing modifying the DOM underneath its root element; the extensions assume the DOM is free to be manipulated. NRI did a writeup on how they fixed it. <a href="https:&#x2F;&#x2F;blog.noredink.com&#x2F;post&#x2F;800011916366020608&#x2F;adopting-elm-safe-virtual-dom" rel="nofollow">https:&#x2F;&#x2F;blog.noredink.com&#x2F;post&#x2F;800011916366020608&#x2F;adopting-e...</a> The TLDR is to use <a href="https:&#x2F;&#x2F;github.com&#x2F;lydell&#x2F;elm-safe-virtual-dom&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;lydell&#x2F;elm-safe-virtual-dom&#x2F;</a>
      • nh23423fefe8 hours ago
        Weird not to mention Elm&#x27;s massive breaking change that killed the project?
        • auslegung7 hours ago
          How does that bear on my comment?
          • wk_end2 hours ago
            Well, you&#x27;re suggesting a reason to choose Elm is stability - a lack of breaking changes. But Elm is actually notorious for its wildly unpopular, dramatic, community-fracturing breaking changes. Backwards compatibility is not a concern for them.<p>It&#x27;s a little tricky though, because the comment you were replying to was talking about the lack of updates. And in that sense, Elm is now very stable - no breaking changes (or any changes at all!) in seven years and counting.<p>(Although, for all the complaints about the React ecosystem: you can still write class-style React components, even though they were effectively deprecated when hooks were introduced just over seven years ago.)<p>OTOH, we have this blog post suggesting development on Elm is kicking up again. Which means more breaking changes might be incoming.
      • whichdan3 hours ago
        I agree that the stability is quite nice. But there are plenty of areas where the language could use some improvement - for instance, the ergonomics around writing nested Single Page Apps is pretty cumbersome.
      • satvikpendem4 hours ago
        Bugs not being fixed is not a feature, it&#x27;s a bug, and it&#x27;s certainly not stability, it&#x27;s just cope.
    • AnatolySkuba4 hours ago
      [flagged]
  • otter-in-a-suit3 hours ago
    I had dinner with Evan at Scala Days last year and had no idea who he was until he casually mentioned Elm. He is delightful and had some great insights on the philosophy behind Elm and on programming languages in general to share.<p>I have little personal opinion on the state of Elm in prod (the little front end I do is as boring as it gets), but I’m glad to hear the language is still active.
  • tasuki6 hours ago
    I almost fell off my chair! Elm is easily my favourite language, and I didn&#x27;t think it&#x27;d <i>ever</i> get another update. Thanks Evan!
  • Aurornis8 hours ago
    We had some big Elm proponents who were trying hard to convince the company to use Elm, including doing proof of concept buildouts in Elm.<p>Then the 0.18 to 0.19 Elm drama happened: The core team restricted the ability for users to do any native JavaScript interop, which broke every Elm app that needed any functionality that wasn’t in the core library.<p>It split the Elm fans into two groups: Those who were upset that they had invested in a language that now pulled the rug out from under them, and those who were true believers who told us that they trusted the Elm team’s decisions and we all needed to chill out and wait for them to address our needs, which they thought would happen soon. That was 7 years ago. There were some attempts to spin the lack of updates as “Look how mature and stable it is!” but you don’t have to look very deep to see that they just stopped working on it.<p>Last time I went back to look at it there were several Elm forks, some maintained by former members of the Elm core team that were more active but never caught on. With the way the core team broke important functionality, ignored the user base, and then abandoned the project for years there is no way I would ever allow this near a production website. I know that will earn me some downvotes from the die-hard Elm fans, but I think it’s important context for anyone who finds themself in a situation where Elm is being proposed for an internal project. It was always interesting as an experimental niche framework, but not as something I’d ever want near a product that I had to maintain. Especially not something that had to survive across developer turnover when your company’s main Elm proponent left and the language was abandoned for years.
    • networked4 hours ago
      &gt; It split the Elm fans into two groups: Those who were upset that they had invested in a language that now pulled the rug out from under them, and those who were true believers who told us that they trusted the Elm team’s decisions and we all needed to chill out and wait for them to address our needs, which they thought would happen soon.<p>This sounds like evaporative cooling.<p><a href="https:&#x2F;&#x2F;lesswrong.com&#x2F;posts&#x2F;ZQG9cwKbct2LtmL3p&#x2F;evaporative-cooling-of-group-beliefs" rel="nofollow">https:&#x2F;&#x2F;lesswrong.com&#x2F;posts&#x2F;ZQG9cwKbct2LtmL3p&#x2F;evaporative-co...</a>
    • gowld2 hours ago
      It&#x27;s amazing that business would tolerate paying staff to build products on one person&#x27;s prototype hobby language.
      • marshray1 hour ago
        It&#x27;s going to be hard to explain to future generations that the demand for computer-speakers was once such that sometimes they could even decide the language in which they spoke to the computer, and that really was a big deal back then because computers couldn&#x27;t just switch back and forth like they can today.
  • akst8 hours ago
    Wish them all the best, I really respected the efforts made to normify some of ideas with unapologetic mathematic names like monads and such<p>But then you see stuff like this <a href="https:&#x2F;&#x2F;lukeplant.me.uk&#x2F;blog&#x2F;posts&#x2F;why-im-leaving-elm&#x2F;" rel="nofollow">https:&#x2F;&#x2F;lukeplant.me.uk&#x2F;blog&#x2F;posts&#x2F;why-im-leaving-elm&#x2F;</a><p>The author is very charitable in their description of the Elm Core teams actions in these interactions, but you read it and they come off entirely unaccountable and dismissive. If they want to make a purely functional language locked down, you really should be upfront that they don&#x27;t have time to make sure basic parts of the web ecosystem are arbitrarily locked off like i18n until they decide users of their langauge are permitted to use it after ruling out any suggestion it doesn&#x27;t undermine the purity they were going for.<p><a href="https:&#x2F;&#x2F;discourse.elm-lang.org&#x2F;t&#x2F;bindings-for-intl&#x2F;1264" rel="nofollow">https:&#x2F;&#x2F;discourse.elm-lang.org&#x2F;t&#x2F;bindings-for-intl&#x2F;1264</a><p>Gonna be honest, really got the impression the maintainer here couldn&#x27;t be stuffed looking to it, and wasn&#x27;t personally impacted and largely didn&#x27;t give a shit. Proceeds to run off some bullshit to dismiss the issue entirely about it being too risky (he had better things to do, and anyone he can delegate this too does too), the poster offers to do the work write a report, etc, etc. Then he&#x27;s ghosted and for some reason the thread is shut after 10 days lol??? I guess giving him the dignity of a reply is out of the core teams hands because of how they arbitrarily configured their discourse.<p>Don&#x27;t blame that dude for leaving Elm, glad I never made the mistake of wasting my time being dependent on its infantilizating runtime.<p>Look if you want to avoid being too coupled to the runtime your language exists in, sounds like a cool experiment, but maybe don&#x27;t drag everyone along with you until you figure out the basic issues.<p>All that is 6 years ago hopefully they&#x27;re more self aware.
    • cmoski5 hours ago
      The automatic closing of threads is so hostile to the community.
  • alphanumeric03 hours ago
    I worked on an Elm project professionally for a few years, and I just finished upgrading an old React app to version 19 on my own, which took a greater part of a year.<p>I can appreciate even more now why Elm is so opinionated. As much as Elm is a unique technical, research language, <i>it is a huge cultural change</i>, and I think that is why so many people left. Allowing libraries to be thin wrapper over ports is one example that goes completely against the Elm philosophy.<p>I&#x27;m happy to see Elm is still around, and I hope one day people will see more value in it.
    • zoul2 hours ago
      For me the problem wasn’t the cultural change, it was depending on language whose leadership doesn’t seem to give a fuck about real-world problems the language users face in production. And then being constantly gaslighted about it on the official channels like the language forum.
  • k_bx8 hours ago
    We&#x27;re now migrating to React, but have some very large Elm projects still in prod.<p>The biggest thing for me from practical perspective was to &quot;freeze&quot; some pieces of DOM to be guaranteed to not change&#x2F;re-created, so that it plays well with some external JS libraries expecting some nodes to not change and stay vanilla.<p>Another is ability to extend Elm&#x27;s debugger to filter out big noisy data to keep it usable for our project.<p>Third is when your data is too big -- it just sometimes fails with &quot;recursion limit&quot; that&#x27;s hard to debug due to the nature of the langauge.<p>Otherwise – it&#x27;s a very beautiful little language that still feels quite modern and easy to work with IMO.
  • dzogchen6 hours ago
    Looks like for the first time in 7 years <a href="https:&#x2F;&#x2F;iselmdead.info&#x2F;" rel="nofollow">https:&#x2F;&#x2F;iselmdead.info&#x2F;</a> is accurate.
  • gregwebs2 hours ago
    I’m trying out foldkit.dev now. It lacks Elms elegance but you have access to ecosystem: it’s just Typescript. Here’s their Elm comparison: <a href="https:&#x2F;&#x2F;foldkit.dev&#x2F;elm&#x2F;foldkit-vs-elm-side-by-side" rel="nofollow">https:&#x2F;&#x2F;foldkit.dev&#x2F;elm&#x2F;foldkit-vs-elm-side-by-side</a>
  • wxw5 hours ago
    Back in my undergrad, I took a Functional Programming class taught in Elm. It was primarily about functional data structures, but we also got to build a web app using Elm towards the end.<p>At the time, I didn&#x27;t think much of it -- I was probably busy learning React and JavaScript and yada yada for employment purposes.<p>Now, having spent some time in industry and having used some gargantuan web frameworks, I find myself missing Elm. MVC in Elm is wonderfully straight-forward and easy to reason about.<p>Congrats on the road to 1.0! Glad to see Elm still active all these years later.
  • bingemaker9 hours ago
    I remember using Elm in one of my gigs. After I left, the client hated me. Not to forget all the drama that it had before Covid. I really want this language to succeed, but its bdfl is trying hard....
  • dzonga9 hours ago
    used elm between 2016-17.<p>it taught me a lot of things - such as simplicity. when I ended up switching to react - redux was easy to pick up cz of elm.<p>sadly the ecosystem never grew. but oh man elm is nice &amp; the apps were performant.
    • sesm8 hours ago
      What&#x27;s the Elm definition of simplicity? Genuinely asking, because the concept of simplicity is very vague and overloaded in programming.
      • xn5 hours ago
        The Elm Architecture[1] makes it easy to reason about code. You render the current state. You create a new state by applying a message to the current state.<p>1. <a href="https:&#x2F;&#x2F;guide.elm-lang.org&#x2F;architecture&#x2F;" rel="nofollow">https:&#x2F;&#x2F;guide.elm-lang.org&#x2F;architecture&#x2F;</a>
      • threethirtytwo3 hours ago
        You really need to use it to see the light. It&#x27;s like reading about programming and actually programming. You don&#x27;t understand programming until you actually program.<p>You won&#x27;t understand why elm is simple until you actually use elm to the point of internal understanding. I think doing this is much harder nowadays given that most people would likely use an LLM to do most of the coding.
        • dzonga2 hours ago
          said it better than me.
  • rienbdj2 hours ago
    I would love to see Elm adopt an effects system as an answer to React hooks.
  • hoppp2 hours ago
    Happy to see elm is still under development, I thought it stopped.
  • jgwil28 hours ago
    On the subject of functional languages with JS as a compilation target, is anyone still using PureScript?
    • ff_6 hours ago
      There are a few of us still at it :)<p>Though with the advent of LLMs it became very easy to spin up alternate backends for it, so it&#x27;s very much alive outside of JS as well.
  • rupertlssmith6 hours ago
    Worth noting there are some Elm to native code compiler projects now.
  • pyrale9 hours ago
    &gt; ... and others are more visible features like equatable and hashable types.<p>I love Elm, and I love the community, but I feel a little gaslit here.
    • 1-more6 hours ago
      say more! Is it that it has typeclasses but they&#x27;re closed?
      • pyrale1 hour ago
        It is that even without an open typeclass system, these specific typeclasses have been a common request for a long while.<p>I have worked at a few elm places, there is always a dict-for-everything dependency or local implementation.
  • novoreorx7 hours ago
    It&#x27;s been some years since I last heard about Elm, but I still rememeber how it blew me away when I first saw it
  • jambalaya82 hours ago
    No offense to the coder, but I would have preferred the name elm to have stayed in my memory as an text-based email client.<p>The language is alright.
    • mjaniczek29 minutes ago
      Thank you for another check on my bingo card.
  • _joel8 hours ago
    Is it me, the code examples look awful to read?
    • 1-more26 minutes ago
      it&#x27;s an ML family language. If you&#x27;re not used to them they can be a trip.
  • threethirtytwo3 hours ago
    I thought elm was dead.
  • desireco428 hours ago
    I hope to see progress in the future. I loved Elm and it made me a better programmer. Things changed a lot since then, but beauty of Elm is not matched by any language.<p>Also, if you ever had to refactor anything, there is no language in the world that makes it as easy to change things.<p>Hope to see more releases in the future.
    • mrkeen7 hours ago
      You should try more languages
  • asgr9 hours ago
    love it see it :)
  • imbnwa8 hours ago
    So many casualties in that period of groping around in functional programming concepts for the frontend from, like, 2014 - 2020 or so. But a lot of good things endured from that at least.
  • phpisatrash4 hours ago
    [flagged]
  • podnami9 hours ago
    What is the point of actively choosing a web framework in the age of LLMs?
    • mhitza9 hours ago
      Stronger foundation (as to mean better tested), less accidental complexity of reinventing everything, transferability of knowledge, easier onboarding and review of changes.<p>Your argument is a mirror of the snark question &quot;why don&#x27;t LLMs write in assembly?&quot; for those not looking at the output at all.
    • haute_cuisine9 hours ago
      The point is the same as in pre-LLM.
    • pohl9 hours ago
      If anything, LLMs make it easier to choose from a broad set of options. The tradeoffs are the same as pre-LLM days, but the learning curve is more favorable.
    • bbg24019 hours ago
      Professional diligence, perhaps? A desire to not be blindly led into the kind of narrow, often first-party stack which is so often proposed by Claude Code?<p>With all due respect, not everyone is afflicted with the lack of care sufficient to allow them to launch vibe coded apps as low quality as <a href="https:&#x2F;&#x2F;podnami.com" rel="nofollow">https:&#x2F;&#x2F;podnami.com</a>. Considered technology choices are one such aspect of the practice of caring about what you&#x27;re building.
    • solumunus8 hours ago
      Statically typed languages with compiler hints are the absolute best languages for LLM&#x27;s to work with. Successful compilation is incredible feedback, and it basically just means that there is a higher chance that the feature is in a complete and working state at the end of each agent iteration.
    • the_gipsy9 hours ago
      I haven&#x27;t tried it, but Elm might be a really good fit for LLMs, because it forbids taking shortcuts.
      • maicben8 hours ago
        It works really great with LLMs, it introduces less bugs compared with other languages
    • akst8 hours ago
      Sorry buddy this is hacker news, you probably meant to enter your prompt here --&gt; claude.ai