Live data from Hacker News

Why I’m Leaving Elm

lukeplant.me.uk

421–430 of 450 posts

Re: Why I’m Leaving Elm

#421

Arrogant is the most accurate word to describe Elm and its leadership. I tried to use Elm in production between 0.14 and 0.18 versions and it was fun and mind expanding experience. I'm truly grateful that I've used it because it introduced a lot of functional stuff to me. But I no longer use it myself or recommend it for any serious work. Breaking changes were negligible in the beginning. But I got fed up with rewrit…

I would have shut that down too. I feel for the maintainers in this case. The stakes are so low.

Re: Why I’m Leaving Elm

#422

Earlier quoted context omitted.

> That came over to me as "you are obliged to do a lot more work that I want you to do, on your own time and personal cost, and to stop developing the project according to your own vision or you are a bad person". But he didn't ask for work to be done anywhere in the article? He asks that he not be prevented from writing code that the compiler supports, but which is arbitrarily limited to members of certain organizat…

> But he didn't ask for work to be done anywhere in the article? He asks that he not be prevented from writing code that the compiler supports, but which is arbitrarily limited to members of certain organizations. That's not asking for work. But that is asking for work! That's a great example of "why don't you just... $TRIVIAL" where $TRIVIAL = "turn off the restrictions", as if there is no consequent problem for the…

I think the Evans just need to be honest about what their projects are capable of. Something like a "please do not build anything that cannot be 100% dependent on packages we have written" notice seems like it would be sufficient. The major problem seems to be that they would like their ecosystem to have the features and support that many other language ecosystems do (such as a rich ecosystem of community-written software), but they are unwilling to cede control to the community in a way that seems necessary to fully support that vision.

That this friction seems to come up constantly seems like it is a failure in messaging. How much energy would the Elm core team save if they didn't have to constantly defend their designs? Then, once the language is at a sufficient maturity to accept community contribution, it could be messaged that supporting development is welcomed.

Instead, you have instances like this one [1], where a developer, misunderstanding the capabilities and goals of Elm, sinks a significant amount of effort into building something that the Elm team has no intention of enabling. Their time has been wasted, they are frustrated, and the Elm team has to once more feel like their goals have been mis-interpreted.

I think purging all non-core Elm packages from the repository, and messaging that Elm is not ready as a general replacement for front-end development tools would save everyone involved a lot of time and heartache.

Of course, the Elm team is free to do as they wish, including fighting a seemingly never-ending series of PR battles over the vision and future of their language. Indeed, this might be the best compromise - they get some amount of ecosystem without changing their vision for the tool. It just seems that there are a lot of bruised egos, and a whole heck of a lot of wasted time because of it.

[1] https://github.com/elm/compiler/issues/1908

Re: Why I’m Leaving Elm

#423

Earlier quoted context omitted.

Sounds like that’s a complete facade though. Plenty of people are overly polite because it inflates their ego to be perceived as polite. And the article isn’t talking about politeness so much as openness. Which, the Elm team seems very very closed off.

>Plenty of people are overly polite because it inflates their ego to be perceived as polite. Can you point me to some article or rigorous paper that would help me take this claim seriously?

I think the idea that most people are nice to some people, and not nice to others is a generally accepted premise.

Re: Why I’m Leaving Elm

#424

Earlier quoted context omitted.

This is untrue--and I'm not entirely sure you followed the article. You can't do synchronous tasks like Intl's format for strings from floats as many locales use "," over ".". It is a pure function `Float -> String`. This should not have to go through the entire update cycle to handle receiving these kinds of value. Using ports adds async to this equation which means you need to write the ports, and handle and store…

It is now 'Locale -> Float -> String' or do I miss something?

Conceptually it's `Float -> String` once the Intl object is instantiated, but you can't use it in Elm anyhow. You'd have to reimplement and ship the entire in-browser Intl spec.

Re: Why I’m Leaving Elm

#425

Earlier quoted context omitted.

>Plenty of people are overly polite because it inflates their ego to be perceived as polite. Can you point me to some article or rigorous paper that would help me take this claim seriously?

I think the idea that most people are nice to some people, and not nice to others is a generally accepted premise.

>I think the idea that most people are nice to some people, and not nice to others is a generally accepted premise.

Nothing I said implied I disagreed with that "premise" and it seems bizarre how what I did say could somehow lead to your non sequitur of an answer. At any rate, what should have been obvious I was taking exception to was the idea that "plenty of people are overly polite because it inflates their ego to be perceived as polite." That comes across as reductive. The same argument could be used to criticize anyone's motivations for practically anything and anything's opposite. So and so does x because it inflates their ego to be perceived as doing x or so and so is overly impolite because it feeds their ego to be perceived as someone with a gruff demeanor. It's too easy so I was looking for some kind of article that at least made a convincing argument for its application in at least this specific context. I'm still waiting.

Re: Why I’m Leaving Elm

#427

I've invested a lot of time in Elm about two-to-three years ago, the two main things was elm-ui [1] and elm-github-install [2]. At the time elm-ui was impossible to build without "native code" so I used it and built elm-github-install to make it work. Suffice to say, I've run into the exact same issues as the author. Had they allowed me to contribute in a meaningful way Elm now would have a nice UI library and probab…

Mint looks cool! Maybe this is answered somewhere, but what would you say is the differentiator between Mint and Svelte? Many of the design choices seem similar. I am in the position of starting a new hobby project soon myself and currently Svelte is the one I have landed on. Thank you for your efforts.

Thanks :)

Mint has what Svelte doesn't:

- consistent language with a good type system - at its base it is a functional language - styling is built in - https://www.mint-lang.com/guide/reference/components/styling... - routing is built in - https://www.mint-lang.com/guide/reference/routing - language constructs for error handling - language constructs for asynchronous tasks - compiles to Preact so the build output is small - easy JavaScript interopability

Svelte has what Mint doesn't:

- it is basically JavaScript compiler - different syntax for template (HTML) vs code - code is just mostly JavaScript and can use NPM packages (I think) - have their own runtime without virtual DOM - transitions and animations are built in - reactive by default (without the need for language constructs)

I haven't really played around with Svelte though so I might be a bit biased. I suggest that you try both a see what you like more.

Let me know if I can help with that :)

Re: Why I’m Leaving Elm

#428
post #165

Earlier quoted context omitted.

> That came over to me as "you are obliged to do a lot more work that I want you to do, on your own time and personal cost, and to stop developing the project according to your own vision or you are a bad person". I mention this in my top-level comment, but here's Rich Hickey of Clojure responding to similar assertions: https://old.reddit.com/r/Clojure/comments/73yznc/on_whose_au... > Clojure was not originally prima…

Let's take Java as a point of reference, since you brought it up. Imagine the JDK were opinionated about which authors were allowed to write packages that use FFI. And people wanting to use it would be instructed to build a relationship to said authors to get their code blessed to use FFI. It is wholly inconceivable. I'm sure you'd see quite a few "Leaving Java" posts over it.

your scenario isn't all that different from how the jdk authors view the use of internal classes, like sun.misc.unsafe.

Re: Why I’m Leaving Elm

#429

Earlier quoted context omitted.

> But in their eyes, Elm is not done I think this is one of the major themes of all the 'Elm dramas' that we have been reading and hearing about. Elm core team should stop recommending it as a stable platform that people can try out (which Elm clearly is not).

I've personally never seem them say "the language is done, you can expect no breaking changes". Hence the fact that it is v0.19

I have read several times that they do not consider the language stable. Yet they repeatedly advertise it as «production-ready» [1,2], which is contradictory at best.

[1] https://discourse.elm-lang.org/t/two-experiences-with-elm/91...

[2] https://github.com/gdotdesign/elm-github-install/issues/62#i...

Re: Why I’m Leaving Elm

#430

Earlier quoted context omitted.

> But in their eyes, Elm is not done I think this is one of the major themes of all the 'Elm dramas' that we have been reading and hearing about. Elm core team should stop recommending it as a stable platform that people can try out (which Elm clearly is not).

I've personally never seem them say "the language is done, you can expect no breaking changes". Hence the fact that it is v0.19

> the language is done, you can expect no breaking changes

Well ... I don't use Elm in production. But, I'm sure there are people out there who got gaslighted because of this ill-conceived move, and they can better explain about 'production readiness' story that was weaved around Elm.

> Hence the fact that it is v0.19

I also don't understand how can a minor version 0.18 -> 0.19 completly break backwards compatibility even if it is not stable. Well may be it's just Elm. They should have atleast thrown a `deprecated` warning and maintain backwards compatibilty till the next major version.

Post reply on HN