Live data from Hacker News

Why I’m Leaving Elm

lukeplant.me.uk

81–90 of 450 posts

Re: Why I’m Leaving Elm

#81

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?

Not the person you're responding to but I do, or actually spacemacs does. The sequence would be $ -> J -> i -> ENTER -> ESC and I guess it's muscle memory.

I agree that this kind of indentation might not make sense on a collaborative project because different people have different standards, but if I'm the only one working on a piece of code I really think precise alignment makes the code a lot more readable.

Re: Why I’m Leaving Elm

#82
post #67

Earlier quoted context omitted.

That's right[1]; and the author of "Why I'm leaving Elm" understands this, yet claims that it's not possible somehow because the Elm people are hostile to it, and that's one of the reasons the project supposedly isn't really "open source". Something seems a bit off in the reasoning. The only reason you can't fork something is that either you don't have all the code, or there is a license problem. One way not to have…

the last thing i want is to get into drama with developers of a project, so if my choices are to give up and leave or fork and face drama, then i'll give up and leave. how that affects the Open Source status of a project is irrelevant, this is simply not a project that i could use, and thus for all intents and purposes, for me at least, it's a project that can't be forked.

If you fork quietly, you can avoid the drama. Just do your thing and don't respond to anyone (in any forum) who isn't reasonable and civil. Don't start drama, don't feed drama.

Re: Why I’m Leaving Elm

#84
post #34

Earlier quoted context omitted.

Your suggestion for the problems with this project is "Why don't you just fork it and maintain your own?"

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.

Re: Why I’m Leaving Elm

#85
post #80

For 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".

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 primarily a community effort, and it isn't primarily one now. That has to be ok. The presumption that everything is or ought to be a community endeavor is severely broken. A true community respects the autonomy of its participants, else it degenerates into a cult of need/want.

The people who write these "I'm leaving X" posts must know they have disproportional power in such a tiny pond. Imagine writing the same post about Javascript or Java because you thought it was supposed to be a democracy or something. Nobody would even read your post.

Re: Why I’m Leaving Elm

#86
post #62
post #43

Earlier quoted context omitted.

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++ :)

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 is so readily available.

Re: Why I’m Leaving Elm

#87
post #77
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…

If you're using/contributing to a open source project that is famous for it's non-community development and BDFL leadership style, it should come as no surprise when that continues. The call for "If you're not happy you should fork the code" comes because this is a explicit expectation of the Elm core team and Evan. What does "open source work" really mean? Open Source talks strictly about the licensing and distribut…

If you're using/contributing to a open source project that is famous for it's non-community development and BDFL leadership style, it should come as no surprise when that continues.

That's pretty much the central thesis of the article. With detail and examples on exactly what the leadership problem is and why it causes challenges for users.

The call for "If you're not happy you should fork the code" comes because this is a explicit expectation of the Elm core team and Evan.

And yet any attempt to do so is described by them as knifing Elm in the back.

What does "open source work" really mean? Open Source talks strictly about the licensing and distribution of the code itself, not the community and everything around.

What I mean by "work" is that it leads to successful projects. By a variety of metrics for success.

It feels like everyone are having two conversations at the same time. Open source as we currently know it, is just about the code. Open communities (or whatever you want to call it) is a separate discussion, and not needed to "make open source work" as you just have to license your code in a specific way to be open source.

Then we can discuss what makes open communities around open source code work, but I think that's a separate thread.

You have it exactly backwards.

You are right that "what is open source" is a different discussion from "what makes open communities around open source work". But this is the appropriate place for the second conversation. And more specifically for discussion of what it is that the Elm leadership is doing that leads to failure, and what it is that users should or shouldn't do given that Elm is being so badly lead.

Re: Why I’m Leaving Elm

#88
post #44

Earlier quoted context omitted.

I totally agree with this fustration. There seems to be some innate paradox between growing a community and being a BDFL. I think this also expresses is self in our current political environment.

i'm not sure if we need to be bringing politics up in a programming discussion, but hey, that's just my opinion.

This isn't a programming discussion. It's a discussion of the policies around an open source project. It's totally politics, albeit not on a national scale.

Re: Why I’m Leaving Elm

#89
post #10

We had a pretty similar experience with elm around cookies. The elm-lang/cookie repo README starts with "Cookies are an ancient mistake of web browsers. They make a bunch of security problems quite easy, so consider this an expert library." However, they never address reading cookies, so if you're using a framework that does CSRF protection with cookies, you have to use ports, which adds quite a bit of complexity for…

> The elm-lang/cookie repo README starts with "Cookies are an ancient mistake of web browsers. They make a bunch of security problems quite easy, so consider this an expert library."

What an arrogant and opinionated way to start a documentation.

Re: Why I’m Leaving Elm

#90
post #58

Earlier quoted context omitted.

I can't speak to Elm, but I'd say the Clojure/Script fiasco wasn't really one sided. Some of the "contributors" not getting their way wasn't like they were wanting to push some amazing improvements. Most of the time, the reason for things not going through is actually disagreement on the impact the change would have to the language, and people complaining about how slowly the discussion around it can happen to drive…

if that is the source of the drama for ClojureScript, there is a huge difference between that and the issue with Elm. With Elm 0.19 they have effectively disabled all libraries that use native JavaScript within, unless they are officially approved by the Elm core team, which I understand is no small feat. Imagine in Clojure if they said "you can't use Java libraries any more. Pure Clojure only from now on" but kept t…

Oh, that's a bold move. I doubt this would happen on ClojureScript, in fact, I see the opposite sometimes, some people in the community complain about how Java and JS ruins Clojure/Script and makes everything worse, and why isn't there a native Clojure, where you'd never have to deal with the host. And the core stance tends to be that being hosted is the whole point from the beginning.

I can see the frustration with Elm though, especially that it was enacted as part of a version upgrade. If it was from the start, people would know what to expect, but this seems like a huge backward breaking change. I'd be annoyed as well.

In Clojure/Script, a lot of the tensions are more about what should be a community provided library, and what should be lifted as officially included in core. I see the core team tends to favour most language extensions to be kept as a library. And often when people want changes to the language to be made, the answer is that Clojure/Script is designed to allow user level changes, so whatever you don't like you can change for yourself. Some people still arn't happy about that, they want their ideas to become the standard.

A lot of that stems from it being a Lisp. There's very little of Clojure/Script that actually necessitates changes to the compiler itself. Even the core functionality, most of it is implemented on the basic primitives the compiler gives, so you can happily change and extend almost anything if you disagree with the core team's choices.

Back to Elm, I know personally, I've never been into a language restricted to only one use case, the web. It seems Elm has always wanted to be more of a framework for web development. A very opinionated one. This seems to be a move even more on that direction. Like if Ruby didn't exist, but only Ruby On Rails did. Correct me if I'm wrong here. It could lead to something nice in the long run, but like any framework, the trade off is that when it doesn't have the feature you need, you're stuck.

Post reply on HN