This post resonates with me. I'm not deeply involved in Elm, I just have an Elm side project (started on 0.17) with roughly 1k lines of code. Do I love Elm? Yes, definitely. It's such a well-designed language. Lots of thought went into it. It's very focused and has great (albeit sometimes non-obvious) solutions for almost everything. However, the leadership style is also what keeps me from recommending Elm to anyone…
This kind of leadership gave us Go. It's not necessarily bad. If everyone gets their way with the language specs, then all languages will look like a weird dialect of C++ :)
Why I’m Leaving Elm
231–240 of 450 posts
Re: Why I’m Leaving Elm
#232Re: Why I’m Leaving Elm
#233Elm wasn't the right language/community for this author and that's ok, not everything is for everyone. I use and love elm as something to write my side projects in. It has a zen like appeal for many reasons: - No runtime exceptions in practice, so you are developing against the compiler and almost never need to manually test what you're writing - Very opinionated about how to do most things. There's usually just one…
May I ask, how are you doing i10n?
Re: Why I’m Leaving Elm
#234Original author of the elm-firebase ( https://github.com/pairshaped/elm-firebase ) here. While I think Elm certainly has some rough patches in both their aggressively PC community and the immaturity of the language (still many breaking changes, not 1.x, etc.), it's not that awful. I was told that elm-firebase was basically a waste, and don't use native modules, so I stopped development. I didn't need to make a big st…
That's what many people (myself included) have done. Unfortunately by not sharing our experiences, others will have to learn things the hard way. If Evan is entitled to run Elm however he wants, Luke is entitled to post whatever criticism he wants on his own blog. If nobody ever speaks up, do you think things will actually ever get better?
I think about half that article could be deleted, and it would still hold content of "why I'm leaving," but without building this huge drama oriented narrative.
Re: Why I’m Leaving Elm
#235For me, the best thing I got from this critique was the link to this 2018 talk by Evan: The Hard Parts of Open Source, https://www.youtube.com/watch?v=o_4EX4dPppA I found Evan's talking style really entertaining and enjoyable, and I totally relate to the first part about "why don't you just..." and "have you thought about delegation..."! The HN comments here are near uniformly negative towards Elm and supportive of L…
> 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 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 upstream author to have to figure out how to achieve the design goals of the project afterwards, or manage the explosion in issues with modules that may potentially emerge, or who knows which other concerns (I'm just throwing out some guesses; don't take them seriously.)
It's a great example of what Evan describes in the video, of a seemingly trivial request whose potential complex consequences are not seen by the requestor, but are seen and must be dealt with by others; and of conflicting priorities.
Essentially it is a request to the author: "I ask that you spend time to revise your design to figure out how to allow my module's techniques to keep working at the same time as achieving the design goals of Elm going forward, and reverse your design decision that you have already made".
> I feel like if you make it so that users of your platform cannot do certain work for themselves, and instead must await you doing the work, you are basically creating the entitlement. You now owe it to them, in some sense, to do the work, since you have intentionally blocked them from doing it themselves.
You have not blocked them.
As many commenters have pointed out, you don't have to wait, you can fork. You can fork quietly if you don't want social issues from making a big noise, as vast numbers of developers do with a vast numbers of projects.
If the upstream author is not making it easy for the downstream module author, perhaps requiring the downstream author to maintain a patched version of the compiler and persuade other people to use the patch, tough. There's isn't and shouldn't be any moral obligation on the upstream to screw their design goals to accomodate that particular downstream author.
I've had to maintain patched Linux kernels for a project. I didn't resent Linux upstream for that. I didn't complain that I needed to patch the kernel. It was just part of the cost of doing my project. It limited what I could expect to do, but I went into it informed of what to expect.
> it's plain that there is a certain slice of the population who doesn't prefer this paternalistic approach to software tools.
I agree. It's more than prefer for some. A certain slice almost demands it and makes life hard for any author who does not provide. For which the word is "entitlement".
Unfortunately that slice has a subslice who wants something self-cancelling: A non-paternalistic project that talks with them at length patiently, accomodates most requests no matter how varied and contradictory, yet still produces a coherency of design, magic-sauce artefact for them, preferably on a regular release cycle with QA, with nobody's time and personal needs covered.
In other words, what they want isn't always feasible, yet they still demand it from individuals (often via emotional pressure), rather than start their own projects.
> Personally my advice is if you're not into opinionated BDFLs blocking you from doing things for non-technical reasons, don't use ecosystems controlled by BDFLs
I agree wholeheartedly. And that's the advice given to Luke by an Elm developer in 2018! :- https://github.com/gdotdesign/elm-github-install/issues/62#i...
Sounds like Luke chose to ignore the advice, then was angry 1.5 years later. I think it can be argued that the person ignoring the advice is the one who creates the later problem for themselves.
> If the Evans of the world wish to remain atop their ivory tower, then they will be the recipients of an incrementally higher frequency of rage-quit posts as a result. Should doesn't enter into it. That's just how it is.
I think that comes under excusing abuse by saying it's inevitable that someone will do it.
Public rage-posts about someone's work are still abuse if the basic problem is that the other person didn't do what you wanted them to.
What we should have, in a "good" world, is that people like Evan should be able to produce their projects in relative peace without abuse.
If people don't like the project, in the "good" world people know what to expect and are free to start their own alternative.
I think the Evans of the world lose in our current world, no matter what they do. If they are less paternalistic, they will have both an ever-increasing workload until they step down, and the project will not fulfil their design wishes so it's much less rewarding.
Re: Why I’m Leaving Elm
#236Is it just me or does the Elm development style resemble that of Go?
But with Go, at least it's the community as a whole making the decision to be like that - people might shy away from cgo, for example, but it's a convention, not a hard limitation. And if you do decide to use Go in your app, you still get to choose how much or little of it there will be.
With Elm, it seems that there isn't any community consensus along these lines, or even a community in the same sense (i.e. that can establish a consensus that would be meaningful). It's practically a religion - you get the rules delivered to you on stone tablets, and you're either all in or all out. Except in this religion, there are new stone tablets every couple of years.
It might be an overly uncharitable comparison, but I can't help but remember https://wiki.lspace.org/mediawiki/Abominations_Unto_Nuggan. Especially "Abomination 6543: Umbrellas or any other Devices that shield the wearer from the Blessings of Nature", in the context of native/kernel code.
Re: Why I’m Leaving Elm
#237After reading a large number of the responses here, I feel like I've noticed a pattern - two types of comments: 1) I've used the language and agree with the conclusions of the post even if I don't necessarily agree with every point. 2) I haven't used the language, but I believe open source projects must be maintained by their maintainers as they see fit. I actually agree with both of these positions, but, having used…
I'm not much into web development professionally, but it's something I learn and use a bit as both a hobby and for personal projects. I looked at Elm a while back (maybe two years ago, but I'm not sure exactly). I decided against it after I ran into some issues related to language instability and old documentation. I dug a little further and it appeared to be how the Elm project was run, so I stayed away. On your sec…
Re: Why I’m Leaving Elm
#238These posts (and HN comments) really make me wonder if adopters of fringe languages are always going to be thin-skinned developers who get emotional when they realize they won't be part of the language's design decisions. That "On Whose Authority" rant about Clojure complains about the exact same things. And I'll refer to Rich Hickey's response: https://old.reddit.com/r/Clojure/comments/73yznc/on_whose_au... . Elm in…
> most people would agree that user packages shouldn't be able to invent yet more custom operators I'm actually curious why; I have yet to see people actually abuse operators outside of C++, and those were in the standard library …
Re: Why I’m Leaving Elm
#239I 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…
Good projects die because of bad leadership.
Re: Why I’m Leaving Elm
#240I fully agree with everything listed in this article. One point he alluded to (by mentioning the "friendly" exclamation marks) but didn't fully address is the Elm community's bizarre and infuriating language policing. You can't say the word "guys" in the Slack channel, or a bot will come and correct you, and tell you to say "folks" instead. And from then on, you'll notice the core team all use the word "folks" incess…
> You can't say the word "guys" in the Slack channel, or a bot will come and correct you, and tell you to say "folks" instead. Being asked to use inclusive language is a weird thing to complain about, especially as the very first example you give. > And from then on, you'll notice the core team all use the word "folks" incessantly in their writing, it's like some weird cult. I use "folks" and other non-gendered langu…