tc39 / proposal-flatMap

proposal for flatten and flatMap on arrays
https://tc39.github.io/proposal-flatMap
214 stars 19 forks source link

Write an explainer for the naming issue #61

Closed jakearchibald closed 6 years ago

jakearchibald commented 6 years ago

There's a lot of misinformation floating around. Folks are unsure if smoosh is a joke or not. Folks feel they haven't been listened to. Folks feel smoosh is already written in stone.

https://github.com/tc39/proposal-pipeline-operator/wiki is excellent. As someone who only had peripheral knowledge of the pipeline operator, this wiki page caught me up on the problems, the proposals, and their pros and cons. Can we do something similar here?

ljharb commented 6 years ago

Nothing is written in stone, and certainly not before the next committee meeting, at which this issue is on the agenda.

An explainer would be great.

bakkot commented 6 years ago

I'm not opposed. Is there anything to say that isn't covered in the last few comments on #56, or should it just summarize those? Other than a list of proposed alternative names, which it would be good to collected.

jakearchibald commented 6 years ago

I think it needs to cover:

If no one wants to write this up, I'm happy to, but I'd need to have a video call with someone to quiz them on the details.

michaelficarra commented 6 years ago

It seems the community is unaware of even more basic things.

The public contributors to this conversation have been so incredibly uninformed, it's hard to know how to even start helping them. Also, many seem to have a complete disregard for web compatibility in the first place, disregarding it over something so silly as a name choice. Do we really need to start at square one?

I'd say we make an effort to address this outside of this repo. There's many educators in the community who would probably enjoy being involved in such an effort. For now, @bakkot's comments summarise the state of things sufficiently.

brunoczim commented 6 years ago

So, let me understand: some framework is writing something in a built-in, which is a bad practice, and now we cannot add this feature without breaking the web or using a silly name? Now I understand why this is a bad practice in first place.

jacktuck commented 6 years ago

@brunoczim that's the gist of it

littledan commented 6 years ago

I'd say we make an effort to address this outside of this repo.

I don't really understand the reasoning here. Lots of people are going to this repo wondering about this issue. People come from different backgrounds and understand different aspects of development. It'd be great to have help from educators, and maybe it's unfair to put the burden on a particular feature champion for giving background here, but either hosting or referencing the documentation from here seems important.

michaelficarra commented 6 years ago

referencing the documentation from here seems important

Sure, that sounds helpful. Closing this issue until such documentation exists. Maybe it should go in tc39/ecma262?

jakearchibald commented 6 years ago

Kinda disappointed to see this closed without being resolved. Given the negative reaction this is creating for this proposal, and its position within TC39, shouldn't this be solved within this repo?

michaelficarra commented 6 years ago

@jakearchibald The options moving forward are

Is that enough of an explainer for you?

jakearchibald commented 6 years ago

Not really. I've already expressed what I think the explainer needs to cover, and given examples from other TC39 proposals, and I don't see how that covers it.

The tone is pretty unwelcome too.

Jerczu commented 6 years ago

Since forever extending native language objects was deemed a bad practice don't see how language has to appease bad practices... It's a terrible name which community already voiced their opinion about. Calling public contributors uninformed is just rude I believe people voicing against it are making informed decisions based libraries you explicitly mentioned are built on general bad practice.

michaelficarra commented 6 years ago

@jakearchibald Okay, I'll address all of your questions directly instead.

Why care about MooTools?

Not doing so would break the web, which is not an option for TC39.

How many sites would be broken.

Exact numbers still unavailable, I believe, but almost certainly significant enough to care since it was caught by a nightly user. We should start planning for the worst.

The pros/cons of other options, like behaving more like MooTools, or Array.flatten().

Behaving more like MooTools would mean adding an enumerable Array.prototype.flatten method. We don't add enumerable properties to built-in prototypes. It will break countless websites which rely on the for-in behaviour on arrays. I'm not sure what you mean by Array.flatten(). Are you proposing we move the flatten method from the prototype to the constructor? That'd be about as ergonomic as using a symbol, which I think is very unlikely to make it through committee.

What stage the process is at.

Stage 3.

Also, whatever tone you've read into my words was of your own making. Next time, do as I do and read it again with an assumption of good faith.

Jerczu commented 6 years ago

@michaelficarra Damn dude is there a way you can express yourself without sounding rude? Even with assumption of good faith.

jakearchibald commented 6 years ago

@michaelficarra I do assume good faith, but despite that assumption I still find your tone hostile. Sure, maybe many people are just reading you wrong, but also consider that some of the issue may be you.

michaelficarra commented 6 years ago

It'd help me if you would quote the things you found hostile. I honestly can't tell what could have been taken that way.

Also, was did my answers satisfy your request? Anything else we still need to add?

jakearchibald commented 6 years ago

It'd help me if you would quote the things you found hostile. I honestly can't tell what could have been taken that way.

I'll try.

The public contributors to this conversation have been so incredibly uninformed, it's hard to know how to even start helping them

While I agree that many folks have been unreasonable regarding this, showing empathy here would combat the "us vs them" narrative that some of them are spinning. TC39 members haven't helped here, as the issue has been over simplified externally, which is why I've been asking for more detail.

Is that enough of an explainer for you?

Try saying that out loud. It sounds dismissive and condescending, especially as it doesn't even closely resemble the level of detail of https://github.com/tc39/proposal-pipeline-operator/wiki, which I used as a good example at the start of the thread.

Also, whatever tone you've read into my words was of your own making.

I'm not the only one here reading your tone as hostile, and this kind of self-absolution is part of the problem.

Next time, do as I do and read it again with an assumption of good faith.

This self-assigned superiority comes across as arrogant.

Of course, all of the above is my reading, but it seems that I'm not alone here.

Also, did my answers satisfy your request?

Do you know someone who knows the details of this issue, but who you also consider great at technical documentation/communication? I'm happy to work with them to flesh out the details you've provided into something which addresses the concerns of outsiders in a sympathetic manner.

Tone is especially important here. Something that comes across as condescending or agressive, regardless of intent, will do more harm than good at this stage.

mathiasbynens commented 6 years ago

My attempt: https://developers.google.com/web/updates/2018/03/smooshgate

hax commented 5 years ago

There is still no explainer in the repo...

Wait... This repo even have no README??

And a proposal without a simple README almost stage 4???

I CAN NOT BELIEVE THAT.

jakearchibald commented 5 years ago

In terms of the specific naming issue, I'm happy considering this done. It was tacked externally by https://developers.google.com/web/updates/2018/03/smooshgate and https://www.youtube.com/watch?v=loqVnZywmvw.

It'd be nice if this repo included something, but at least they're linked from this issue.

Feel free to open an issue about the total lack of explainer (I agree it's a problem).