Remix.run Logo
bbkane 3 hours ago

I think of Elm more as an incredibly influential research language these days.

It's very focused, there'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.

But MAN is it nice to work in. This has resulted in several forks/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).

So I'm glad Evan is now working towards 1.0. Maybe folks can call Elm "finished" and one of the successors can do the hard work of unifying some of the forks and growing the community.

Personally, the next time I'm looking for an Elm-like thing, I'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!

brokencode 3 hours ago | parent | next [-]

Yeah Elm has had a very strange arc, but I think calling it a research language is right.

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.

Then the author just kind of disappeared and the project stalled.

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.

The heavy evangelism helped spread the ideas, but also set up developers to feel blindsided and abandoned.

Aurornis 2 hours ago | parent [-]

> Then the author just kind of disappeared and the project stalled.

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.

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.

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.

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.

adastra22 2 hours ago | parent [-]

What feature is that?

wavemode an hour ago | parent | next [-]

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).

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.

arthurbrown 2 hours ago | parent | prev [-]

One form of JavaScript interop. Instead of being able to write bindings directly to native code, you had to pass messages through "ports" instead.

https://discourse.elm-lang.org/t/native-code-in-0-19/826

Personally, I was sad to see signals and FRP go in 0.17

https://elm-lang.org/news/farewell-to-frp

ethagnawl 2 hours ago | parent | prev [-]

For whatever it's worth, I've found Gren to be a very capable successor with an active and helpful community.