Live data from Hacker News

Why I’m Leaving Elm

lukeplant.me.uk

91–100 of 450 posts

Re: Why I’m Leaving Elm

#91
post #31

Earlier quoted context omitted.

The learning curve to PureScript is way higher than Elm. Is that not that obvious?

Not only is it nearly as high as Haskell, the PureScript guide hasn't been updated in years and is wildly out of date. You have to go searching for an unofficial rewrite, and those are incomplete as well.

On the other hand, you can pretty much just learn Haskell to learn PureScript. All of the differences fit onto a single small docs page: https://github.com/purescript/documentation/blob/master/lang...

Re: Why I’m Leaving Elm

#92

Earlier quoted context omitted.

It doesn't really solve the problem. How do you format this code with tabs: function name(arg1, arg2, arg3 The other issue is with maximum line length. If you have a maximum line length of 80, do tabs count as 2 spaces, 4 spaces, or 8 spaces towards meeting that line length? Using spaces ensures that it at least looks consistent, independent of your tabstop settings.

You learn to live without precisely aligned arguments! Really this is a peculiar kind of OCD. You don't need to have arg3 precisely lined up with arg1. Or better yet, indent all the arguments in a nice column - if there's so many that they can't fit horizontally, render them vertically. Most IDEs default to two indentations for continuation.

I've had some discussions with folks on projects who are very... focused on linting and formatting rules. They've reformatted my code in the past, and have insisted on blocking code that doesn't pass all their listing rules.

Them: "We have to use these tools to avoid disagreements about spacing and formatting choices".

Me: "But... I wasn't having any in the first place. It's only the 3 of you that were having these disagreements. And now you're spending ridiculous time planning reformat of entire codebase, instead of actually... moving the project forward.

Please don't bitch about me using $x = new Temp(); in a test file. I'm the only person on the project even making test files, and you're blocking my TEST file because you don't like variable name style..."

They got in to a quandary when trying to inline some JS in to a PHP view file. The PHP standard is 4 spaces, and the person doing some of the JS had defined 2 spaces for JS ("so we can all agree on it") and ... all hell broke loose trying to determine what the style/formatting should be for JS-inside-PHP files. 4 spaces? 2 spaces?

Re: Why I’m Leaving Elm

#93
post #62

Earlier quoted context omitted.

Same with Clojure, where Rich and other core contributors decide for the rest of the community what should be worked on. I think Python is/used to be the same. Name of this leadership style is BDFL (Benevolent dictator for life) and seems to work for some projects, but you always have people feeling unfairly treated by it, while others enjoy it greatly. Guess that's the effect of being a human :) https://en.wikipedia…

Except those BDFLs give you escape hatches to do whatever you want. Elm removed it. It's the same as Clojure, if they didn't let you use your own Java libraries. Or if you couldn't write C extensions for Python. Rich Hickey isn't going to chastise you for resorting to a Java library if you have to, because despite Clojure being an opinionated language, at the end of the day he's pragmatic, which is why Java interop i…

Maybe this extreme limitation is necessary in the Elm's author vision.

It's open source. You can always fork and implement your own vision. In fact, you're encouraged to do so.

Re: Why I’m Leaving Elm

#94

Earlier quoted context omitted.

It doesn't really solve the problem. How do you format this code with tabs: function name(arg1, arg2, arg3 The other issue is with maximum line length. If you have a maximum line length of 80, do tabs count as 2 spaces, 4 spaces, or 8 spaces towards meeting that line length? Using spaces ensures that it at least looks consistent, independent of your tabstop settings.

> It doesn't really solve the problem. How do you format this code with tabs: function name(arg1, arg2, arg3 Just wondering… do you realign the parameters every time you rename a function?

    function name(
    arg1,
    arg2,
    arg3,
    )
That means this never comes up, and you don't need to change adjacent lines because you've renamed a function.

Re: Why I’m Leaving Elm

#95
post #59

I don't agree with everything here. Open source really does mean that you just have all the code to rebuild the thing from scratch under the right sort of license. Open source doesn't mean anything else, like having access to design decisions. Interaction style and personalities are also not part of the definition of open source; open source doesn't mean nobody is brusque or abrasive. Some communities have additional…

Agree. I'm gonna be honest and say I haven't finished the entire article so author might have elaborated further after, but I got a chill when reading the following passage: > The second is that if you advertise something as Open Source, there is a common set of assumptions about what that means, some of which are explicit in accepted definitions of the term. It seems the "common set of assumptions" is around that pe…

> I continued reading and found bunch of more passages where the authors understanding of open source seems to be incorrect.

The author is one of the "core team" members of Django[0]. So, it is safe to say that whatever assumptions he has about open source is not a fantasy and cannot be compared line-by-line to a text book definition of open source.

[0] - https://lukeplant.me.uk/personal.html

Re: Why I’m Leaving Elm

#96
post #64

Earlier quoted context omitted.

I don't agree with everything here. Open source really does mean that you just have all the code to rebuild the thing from scratch under the right sort of license. Open source doesn't mean anything else, like having access to design decisions. That is acknowledged in the article. But the fact is that you can BE open source without doing the things that make open source WORK. [...] Elm users who are not happy should f…

> Why should unhappy Elm users do this instead of going to a language+environment that they don't have to fork to get something usable for them? Of course they can do that, but then they are not Elm users, which makes them off-topic to the question of what Elm users should do to move forward as Elm users. > requires a lot less energy and commitment. We don't actually know that for sure without looking at the size of…

> > Why should unhappy Elm users do this instead of going to a language+environment that they don't have to fork to get something usable for them?

> Of course they can do that, but then they are not Elm users, which makes them off-topic to the question of what Elm users should do to move forward as Elm users.

The topic was someone saying in detail, "Here is why I have chosen not to be an Elm user, and why you shouldn't be either." Which means that the experience of people who are not committed to being Elm users is on topic.

> > requires a lot less energy and commitment.

> We don't actually know that for sure without looking at the size of someone's Elm code base.

Fair enough.

Of course in this case he says that he is walking away from an 8000 line project that can't upgrade to 0.19 because of the native code issue. So we know how much code he is talking about, and also know that a rewrite in a new language is simpler than trying to upgrade.

In this case maintaining a fork certainly exceeds the benefit of the project.

> Maybe some users also think that Elm is otherwise fantastic and want to stick with it.

I am sure that there are.

> For various reasons, changing tooling is not like changing what shampoo you use, except for some language-hopping butterflies who are experimenting with a new thing every week.

No, it is not.

However if you will have to make the change some day, then it is probably better to bite the bullet and accept the pain now rather than adding to it for a future date. And if the leadership problems described continues, it is clear that the Elm community is going to fall apart and any project in Elm will dead end.

Therefore if you are an established Elm user, you should be ready to accept that tooling change pain as a question of when, not if.

Re: Why I’m Leaving Elm

#97
post #78
post #64

Earlier quoted context omitted.

I don't agree with everything here. Open source really does mean that you just have all the code to rebuild the thing from scratch under the right sort of license. Open source doesn't mean anything else, like having access to design decisions. That is acknowledged in the article. But the fact is that you can BE open source without doing the things that make open source WORK. [...] Elm users who are not happy should f…

Because every single one of these posts is "I like Elm, I don't like Evan('s style of leadership)." All of these leavers could've maintained that fabled community fork they want with the features they want if they all got together.

True.

But "if they all got together" is waving away the difficulty of getting them all together, cooperating, and working together. Open source projects are a lot more difficult to run than you might expect.

Re: Why I’m Leaving Elm

#98
post #59

I don't agree with everything here. Open source really does mean that you just have all the code to rebuild the thing from scratch under the right sort of license. Open source doesn't mean anything else, like having access to design decisions. Interaction style and personalities are also not part of the definition of open source; open source doesn't mean nobody is brusque or abrasive. Some communities have additional…

Agree. I'm gonna be honest and say I haven't finished the entire article so author might have elaborated further after, but I got a chill when reading the following passage: > The second is that if you advertise something as Open Source, there is a common set of assumptions about what that means, some of which are explicit in accepted definitions of the term. It seems the "common set of assumptions" is around that pe…

Indeed. Author seems to confuse open source and open access. Or he may like them to be one and the same thing: though luck.

Re: Why I’m Leaving Elm

#99

Earlier quoted context omitted.

That's what forking entails. It's a bit like Brexit. You don't get to stay in the club. If there are sufficient people unhappy with Elm but are cohesive enough to push the compiler forward, then why not?

The author’s point is that other languages don’t (typically) kick people out of a club for forking.

Precisely.

Re: Why I’m Leaving Elm

#100

Earlier quoted context omitted.

The learning curve to PureScript is way higher than Elm. Is that not that obvious?

Do you think it is harder to learn than Ocaml/ReasonML though? I think there is a good free introductory book [1], a welcoming community [2], the language and ecosystem are quite stable nowadays and there's good tooling (now that there's the Spago package manager). [1] https://leanpub.com/purescript/read [2] https://discourse.purescript.org/

It's definitely harder. I have been doing O'caml for about 20 years now, and we have probably one of the largest Elm apps out there. I looked at Purescript, especially because it also compiles to other languages (C++, BEAM) but the learning curve is a bit steep.
Post reply on HN