Live data from Hacker News

Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

gist.github.com

151–160 of 245 posts

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#151

> So, here we are in 2020, and nix#864 remains unmerged. Fred, you say, you overreact. I read the entire PR. I _want_ to agree with the author, but I didn't find this reasonable. The feedback, for the most part, was not about being perfectionism. Not remotely. It's about being correct . This is not unique to Rust, which as a language spends a lot of time being correct in a few dimensions, but pretty traditional. You…

Speaking as a historically pedantic person, correctness is often a form of perfectionism. Just gussied up. Unless you have a verifiable system all the way down, you will always have bugs, crashed, and race conditions. Going all the way to 11 on trying to make it correct usually results in negligible improvement in correctness for a lot more time spent. Depends on the system of course. This is a terminal emulator, not…

"Accepting" a pull request means merging it, and broken code should not be merged. By all means feel free to propose improvements to the PR, then merge it. And if achieving a reasonably well-defined standard of correctness (i.e. avoiding complete and utter breakage) is not feasible, the PR should be scaled back until it becomes so. Start with the minimum useful change, then expand on it.

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#153
just fork and change whatever you need and build it. that's the magic of open source.

if someday your own personal fork gets enough attention and the use case you implemented is solid enough, it'll pick up steam and will possibly get merged (or not) into upstream.

but still, you are free to change and peruse whatever you see fit. you got a lot of work done for yourself for no effort at all. time to put in your own.

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#154
I think open source should be like genetics: if you want a mutation that’s not going to be part of a project, fork it.

If it’s important enough of a feature people will adopt it and it will coexist with the original project.

If that convinces the original authors of the importance of a feature, you can merge and make the world beautiful again.

If something is important to me but I have requirements that differ from the maintainers I usually maintain a fork even if I’m the only user of it.

Sometimes it attracts people with similar needs and they build on top of my changes.

Discussions in open source are a lot more discursive and mutually respecting when you’re offering to donate your work to the project because it helped fulfill a need that you had yourself, not only because it gave you a reason to invest time into it but also because you don’t usually invest time into things without a clear reason you needed that feature.

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#155

Off-topic: Someone mentions in the Github comments that Rust has "self-imploded". I get it's a joke, but have there been significant bad events in the last couple of weeks?

https://news.ycombinator.com/item?id=29306845 "Rust Moderation Team Resigns" ?

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#156

> So, here we are in 2020, and nix#864 remains unmerged. Fred, you say, you overreact. I read the entire PR. I _want_ to agree with the author, but I didn't find this reasonable. The feedback, for the most part, was not about being perfectionism. Not remotely. It's about being correct . This is not unique to Rust, which as a language spends a lot of time being correct in a few dimensions, but pretty traditional. You…

> Take a look on LKML, or Git's mailing list, or on any serious project from the last 20 years. Yes. But we are talking about a terminal emulator. And not even about one bundled with a DE (or OS). This _should_ be exactly the type of project where people can get their first OSS programming experience.

From a quick skim of the PRs, it looks like OP was using CString everywhere, and messing with pointers in unsafe blocks, called from safe blocks of code.

Generally speaking, these 2 things alone are basic errors when coding proper Rust. There were also many minor issues with the PRs that it seems the maintainers attempted to work through with OP.

Unfortunately learning the basics of a language like Rust is hard. Learning how to write correct Rust is even harder (and sometimes impossible without the right background knowledge). Learning how a project expects PRs to be designed and formatted is less technical, but takes dedication and time.

These PRs are riddled with things that are just straight incorrect.

Also, generally you are right about beginners starting with easier projects like this, but as many others in these comments have stated, the general bar is not low. Projects decide how to manage PRs. Nobody is stopping you from creating a terminal emulator in Rust that caters to beginners in Open Source. My guess is that the project would not be as good as Alacritty.

Also, the maintainers of any open source project don't owe you or anyone (including contributors) anything.

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#157

Ha, trying to get Alacritty to have a native-feel icon for macOS which had basically zero drawbacks and most other applications do was met with a straight up NOPE. Not up for debate, people supplied the assets and I even made a PR, nope, closed. Even though it was in a directory full of platform specific stuff (Alacritty.app resources), it was decided that it couldn't differ from the other icons, so Alacritty has to…

This is frustrating because it is a change that has no other impact aside from making your users happier. The justification for not merging that is nonsense.

It increases complexity of future maintenance, no change is costless.

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#158
This post fails to speak to me on two fronts:

* The `nix` crate is a cornerstone of the Rust development ecosystem: if you do anything that requires POSIX or various *nix-specific APIs beyond those wrapped by the standard library, then `nix` most likely provides a high-level and safe wrapper for them. Perfectionism is a virtue in this context, one that keeps large parts of the Rust ecosystem from accidentally consuming buggy code. The author unfortunately chose a particularly messy and bug-prone corner of the POSIX APIs to wrap, and ran into a correspondingly intensive review process. I've merged simpler wrappers[1][2] with no fuss.

* Alacritty seems to work just fine. I switched to it about two months ago, after using nothing but (heavily customized) rxvt-unicode for a decade. Maybe it's because I don't use ligatures or images in my terminals (I thought we were talking about non-"toy" functionality!), but I haven't found myself wanting for anything beyond what Alacritty already does. And the scrollback seems to work nicely. To summarize: where's the tragedy?

[1]: https://github.com/nix-rust/nix/pull/1342

[2]: https://github.com/nix-rust/nix/pull/1331

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#159
post #42

Earlier quoted context omitted.

Bennan has since repudiated 8chan and has fought for it to be taken offline. Let's not judge him too harshly.

No, he didn't fight for it. He sold that site - that’s all. When he had the power to stop GamerGate imageboards - he didn't. When he could remove boards with CP - he didn't. What I wrote is far from “judging him too harshly” :) He only apologized for not removing the shooter's manifests. He didn't apologize for GamerGate, CP, racism, neo-nazism, and other terrible things. His words about the 8chan shutdown - “I was n…

hey thanks for posting a link to the interview since it gives much more perspective

Re: Rust maintainer perfectionism, or, the tragedy of Alacritty (2020)

#160

Off-topic: Someone mentions in the Github comments that Rust has "self-imploded". I get it's a joke, but have there been significant bad events in the last couple of weeks?

https://news.ycombinator.com/item?id=29306845 "Rust Moderation Team Resigns" ?

Totally missed this. Thanks!
Post reply on HN