> What We Owe to Elm
Everyone who talks about Elm sounds like they have Stockholm syndrome. Don't think I've seen a single good experience lately.
> What We Owe to Elm
Everyone who talks about Elm sounds like they have Stockholm syndrome. Don't think I've seen a single good experience lately.
It was doomed to end this way due to the close leadership and being developed behind closed doors by a single developer.
This kind of projects, as amazing as they are, and Elm is absolutely an amazing language and project that has changed and influenced web development meaningfully, are just untrustable.
If you can't have a discussion with library authors where they confront their ideas in the open, you need to move on or pay the consequences.
Interestingly, for the most part you can't do this with Rails authors. It does not make me super confident in the future of Rails. From the authors point of view, I suppose it saves them time arguing in public in useless ways.
It wasn't clear to me that you were only talking about when there is only one maintainer, but it does make sense to me that the problem is _greatest_ when there's only one maintainer, sure. It still doens't fill me with confidence even when there's a junta.
With Rails, we also suspect there is one person, the original author, who has outsized authority within the plural authors, who at least occasionally, maybe more, makes final decisions without even internal discussion among the committers "committee"... but since it all happens in private, and nobody ever reveals anything about what happened there, it's hard to say how much internal discussion there is amongst the plural authors, or how often big decisions get made by fiat. It does feel very... politburo.
I am curious since we have one major project written in Elm since 2017 and it has been a great success.
There are no obvious landmines in the Elm compiler.
I adore using technology that feels “finished”.
I personally view its infrequent updates as its best feature.
In this particular case, the workaround is luckily simple:
case String.fromInt n of
Just "-1" -> True
_ -> False
I'm generally fine with language quirks like this, but I understand why others wouldn't be.As others have noted, the Elm architecture has influenced many more pragmatic frameworks that have taken the key principles while still allowing work to get done.
I’ve used Elm a few times for hobby projects and while it’s super nice to model state and render most HTML and CSS (and is even enjoyable to write), you always feel that one day you’ll become too locked in and that Evan may decide to go live on a farm.
Things I've personally missed include websockets, missing features in the browser interface like preventDefault in the Keyboard API, etc. It's not a big deal, but if you need lots of less covered APIs and have to develop ports for many little things, it becomes an annoyance.
In professional contexts, I haven't had trouble with Elm, but others have reported missing the kind of features people usually require, like server-side rendering, the ability to deploy a private package repository that doesn't feel like a hack, etc.
0.19 was a great version, but it is very barebones, and some new developments that have happened in other ecosystems just didn't happen because of the way contribution works in Elm.
If you only need what's already there, Elm is glorious. If you don't, you know it. Evan can't really be blamed for it, as he's always been very clear about that, but at the same time, it's kind of a pity to see such a great work that can't really be extended.
But how can you reliably know that'll be true in the future? Elm scared me away because I thought I'd be going along perfectly fine and suddenly get a straightforward new requirement that is strictly impossible.
(For those who haven't looked into Elm the issue is that to call javascript functions synchronously you have to be whitelisted by the compiler. One of the explicit reasons for this is that the language designer thinks it's bad when there are multiple competing libraries solving the same problem).
In that context where many devs were backend devs or self-taught, so using JS wasn't that important, since we were going to train anyway. Actually, training to Elm felt much saner than training to JS.
However, the tech remained niche for all the reasons I quoted in my first message.
Elixir has been feature complete for a few years now. Do you feel it’s doomed as well?