00:10 | <ljharb> | i really like andrew's two-physical-location suggestion |
00:12 | <michaelficarra> | do we need the remote plenaries at all if we just held these topic-oriented calls? |
00:12 | <ystartsev> | yes |
00:12 | <michaelficarra> | ystartsev: why? |
00:12 | <ystartsev> | they have different purposes |
00:12 | <ystartsev> | one is plenary, the other is feedback |
00:12 | <ystartsev> | plenary has decisions |
00:12 | <devsnek> | full plenary gets people who aren't focused on x looking at x |
00:13 | <michaelficarra> | am I wrong in understanding that the goal with the first part is that we just want to reduce in-person plenaries? |
00:14 | <ystartsev> | from my perspective the two tasks need different kinds of focus |
00:14 | <jridgewell> | I agree with ystartsev |
00:14 | <ystartsev> | feedback is generative, decision making is narrowing -- we say no to things |
00:14 | <michaelficarra> | okay so for those who support remote plenary, why do you support it? |
00:15 | <ystartsev> | right now im remote. it works well. the main problem i am facing is that its three days in a row; I also participate in other standards bodies who have a weekly plenary meeting for 1 hour and meet once a year. it works well there |
00:15 | <michaelficarra> | we can have fewer in-person meetings if we just move some of the feedback and review from those meetings to remote meetings (where non-binding decisions are made) |
00:15 | <ystartsev> | the travel burden of 6 times a year is very hard for someone not in the USA, and we lose a lot of participation as a result |
00:16 | <ystartsev> | feedback rounds have different forms of thinking. i don't think they directly translate into decisons |
00:16 | <ystartsev> | and if we use incubation things as decision making spaces, then the real benefit of feedback rounds is lessened. |
00:16 | <michaelficarra> | ystartsev: I am getting the feeling you think I'm supporting 6 in-person meetings |
00:17 | <ystartsev> | no, i hear you -- you are fine with reducing without making decisions in calls |
00:17 | <michaelficarra> | yes and I think we agree on that point |
00:17 | <ystartsev> | my preference is to make decisions in calls, because i don't see that much benefit to keeping it to in person plenaries |
00:17 | <ystartsev> | and, i think that the two different forms of thinking are important |
00:18 | <ystartsev> | i would not be completely opposed to what you are proposing, for what its worth |
00:18 | <michaelficarra> | okay so you think we should have fewer in-person meetings, remote plenaries, and incubation calls? |
00:18 | <ystartsev> | i suspect incubation calls will be a subset of the committee |
00:18 | <michaelficarra> | yes I think that's the idea |
00:18 | <ljharb> | i suspect you're right |
00:20 | <ljharb> | tbh i don't think incubation calls (which i think are a good thing) really impact the remote plenary discussion, except in that it adds to the number of frequent calls that delegates have to add to their calendar |
00:20 | <ystartsev> | ^yes thats true |
00:21 | <ljharb> | eg i already have about 6 hour-long calls, some weekly, some bi-weekly, and incubation calls and remote plenaries would add more things to that |
00:21 | <ljharb> | (probably more, i didn't go cout) |
00:21 | <ljharb> | *count |
00:28 | <decompil_> | as a concrete action, can we just get the incubation calls going? |
00:32 | <robpalme> | resuming at 14:42 with hax (10 mins) |
00:41 | <robpalme> | haxjs: please be aware that your timebox is reduced by 10 minutes due to your previous item overrunning. so you have 20mins from now. |
00:43 | <sffc> | akirose: interested in the panel |
00:44 | <shu> | decompiled: i didn't want to spring it on people without heads up i guess, but since it's designed as a subset anyway, we can do a "trial run" |
00:44 | <gibson042> | I strongly agree with ystartsev and others about the quality of less-frequent in-person plenaries improving from better overall presence and participation |
00:44 | <shu> | decompiled: a trial run before the next in-person meeting |
00:44 | <shu> | decompiled: look out for a reflector thread if interested! |
00:45 | <decompiled> | shu: will do. definitely interested longer term as I bring subsequent proposals. would have helped ahead of the Object iteration one this time π |
00:45 | <shu> | decompiled: one thing we didn't get a chance to hammer on some more is that dan and i believe the incubation calls should be good mentoring spaces |
00:45 | <shu> | less people, more relaxed, no stigma about questions and taking time |
00:46 | <shu> | well, there'll be timeboxes, but there shouldn't be pressure that the end of the timebox means we need to have a conclusion |
00:46 | <decompiled> | yup, definitely a good principle to follow -- will help make this committee more inclusive and welcoming for sure |
00:49 | <rickbutton> | +1 shu |
01:03 | <ljharb> | jridgewell: `apply` is already a MOP operation, no? |
01:03 | <jridgewell> | Oh, I thought it was call. |
01:04 | <ljharb> | aren't apply vs call the same? |
01:04 | <akirose> | something about array vs arg list? |
01:04 | <akirose> | i didn't even google that |
01:05 | <jridgewell> | There are currently two operations in `obj.foo()` |
01:05 | <jridgewell> | 1. A GET |
01:05 | <jridgewell> | 2. An APPLY |
01:06 | <jridgewell> | (I think that APPLY is badly named, but oh well) |
01:06 | <jridgewell> | If we could instead combine those into a single "apply" operation |
01:06 | <jridgewell> | Then we could easily use wrapping proxies on the object to detect improper use |
01:06 | <ljharb> | ah like a getApply or something |
01:06 | <jridgewell> | Yah |
01:06 | <jridgewell> | Mark has wanted one for a while |
01:06 | <ljharb> | but then a proxy could make `obj.foo()` do something different than `(0,obj.foo).call(obj)` |
01:06 | <ljharb> | that seems super weird |
01:07 | <jridgewell> | Yes |
01:09 | <jridgewell> | Agree with shu |
01:10 | <ystartsev> | also agree with shu |
01:10 | <devsnek> | is shu the one that said it shouldn't stage 1 if we know its not going to get past that |
01:11 | <jridgewell> | I think he doesn't want to confuse people |
01:11 | <jridgewell> | The current solutions presented are unlikely to advance |
01:11 | <devsnek> | no i'm just trying to track who said what |
01:11 | <jridgewell> | So saying they're stage 1 would be confusing |
01:11 | <jridgewell> | Yes |
01:11 | <devsnek> | cool |
01:11 | <jridgewell> | That was shu |
01:11 | <ljharb> | devsnek: imo shu said that if the stage 1 thing is called "X", but "X" isn't the thing that's likely to proceed, it shouldn't be called "X" |
01:12 | <devsnek> | ok yes i realize it was a bad summary |
01:12 | <ljharb> | and since stage 1 is supposed to be about solving a problem, stage 1 proposals should probably be consistently/thoroughly named in a way that describes the problem, not a particular solution |
01:16 | <wsdferdksl> | I'm very uncomfortable with the pressure to make stage 1 proposals very vague. |
01:16 | <ljharb> | wsdferdksl: not vague - specific about the problem, which is what stage 1 is about |
01:16 | <wsdferdksl> | That's vague. |
01:17 | <apaprocki> | it is only an issue in cases where the proposed solution has clear objections but the "idea" has merit |
01:17 | <wsdferdksl> | I can name lots of problems for which there will be as many opinions about what a solution could be as there are folks in the meeting |
01:17 | <apaprocki> | that doesn't mean concrete stage 1 proposals are bad |
01:17 | <ljharb> | wsdferdksl: sure, but debating the solution is a stage 2 concern |
01:17 | <apaprocki> | just that if the concrete idea has clear objections, it needs to become more general |
01:17 | <ljharb> | wsdferdksl: meaning, it's mostly irrelevant when discussing stage 1 advancement |
01:18 | <wsdferdksl> | Not being on the same page just wastes the committee's time |
01:18 | <ljharb> | that's why it's so important that we're all on the same page about what problem is being solved |
01:18 | <ljharb> | (before we debate solutions, for which the primary motivating problem should be informing us) |
01:19 | <devsnek> | they are not blocked |
01:19 | <wsdferdksl> | Debating problems is not productive without a solution in mind. It's a waste of time. |
01:19 | <devsnek> | they could easily put this data in the import maps |
01:19 | <devsnek> | or something similar |
01:19 | <devsnek> | would reduce duplication too |
01:19 | <ljharb> | wsdferdksl: that's a strong opinion i'm not sure is universally shared |
01:20 | <wsdferdksl> | It probably isn't, but it's become a problem at this meeting. |
01:20 | <ystartsev> | who is wsderdksl? |
01:20 | <ystartsev> | can you set your whois? |
01:21 | <akirose> | ++ waldemar please add your name to your nick |
01:21 | <ljharb> | wsdferdksl: i certainly expect most stage 1 proposals to have a solution in mind, but discussing that solution before we even agree that the problem needs solving imo is a much bigger waste of time |
01:21 | <wsdferdksl> | Sure |
01:21 | <ystartsev> | thanks |
01:22 | <wsdferdksl> | I was replying to ljharb |
01:22 | <ljharb> | wsdferdksl: i think that when a stage 1 proposal has a clearly understood problem, that it makes total sense to focus on a primary solution |
01:26 | <sffc> | akirose: I'd like at least 5-10 minutes to pitch my problem and get a list of people with opinions so we can follow up offline |
01:27 | <robpalme> | sffc: we might be able to get you 5 mins. modules finishes at 15:50. |
01:30 | <haxjs> | I'm a little confused about how a stage 1 proposal should be, I try my best to explain the problems, the use cases, and the possible solutions. It may be better to summary the question domain as: we need 1. a runtime reflection mechanism to check the intention of a callable whether it meet the requirement of an API, so it could protect programmers, 2. a declarative mechanism to mark the intention of a function |
01:30 | <haxjs> | whether it's a method (we already have the way for constructor and normal callback like arrow functions) . could such description better for advance for stage 1?? |
01:30 | <michaelficarra> | haxjs: if you want help rewording your thisArgumentExpected proposal to be acceptable for stage 1, let me know |
01:30 | <michaelficarra> | oh, looks like we crossed paths, let me explain |
01:31 | <michaelficarra> | so the way you've described the domain you're looking into here seems fine to me, we just need to update the proposal document to remove the specific solution you brought forward |
01:32 | <ljharb> | (or de-emphasize?) |
01:32 | <michaelficarra> | shu was afraid that people would read too much into the proposed solution and assume we were going that route, when we do not want to express that intention |
01:32 | <haxjs> | Oh. but it seems there are some doubt about proposals without concrete solutions as possible direction in the past?? |
01:32 | <michaelficarra> | haxjs: what are some examples of those? |
01:32 | <michaelficarra> | or do you mean that there was a doubt that there even could be a solution? |
01:34 | <ljharb> | i think that if the readme talks about the problem space, and then clearly and explicitly describes "here is one potential solution" but also explains that the committee had reservations about it, that it's fine |
01:35 | <michaelficarra> | we'd have to get confirmation from shu on that |
01:35 | <haxjs> | ok. I will edit the readmes! |
01:35 | <shu> | i think given the magnitude of the feedback |
01:35 | <shu> | it's not a potential solution, but a proposed rejected solution |
01:35 | <michaelficarra> | haxjs: to be clear, the explicit this proposal was rejected from stage 1, regardless of readme changes |
01:36 | <michaelficarra> | shu: that is probably a better way to describe it, yeah |
01:36 | <shu> | or rather, a rejected proposed solution |
01:36 | <haxjs> | Ok. but i need to understand the main concerns about the reason of rejection. Currently I'm not sure I get them. |
01:36 | <shu> | (proposed rejected sounds like it was proposed to be rejected) |
01:37 | <michaelficarra> | haxjs: from Waldemar, "WH: This does not solve any problem and introduces a new way of saying `this` in the language, which is not a problem that we have. It is not that phrasing it in a different way would make it more acceptable, I donβt see this as solving a problem." |
01:38 | <michaelficarra> | I think the general feeling I got among delegates was that they could already alias in the body with a let declaration |
01:38 | <ljharb> | * const :-p |
01:38 | <michaelficarra> | whatever |
01:38 | <devsnek> | but if you use out of band you don't need to worry about a host supporting or rejecting your syntax |
01:39 | <devsnek> | cuz the host just loads the metadata it knows how to load |
01:39 | <haxjs> | why it could be? it just like normal parameters... don't understand this part. |
01:39 | <haxjs> | this parameter syntax is only for userland code, why it will affect host? |
01:40 | <ljharb> | haxjs: that comment was re module attributes |
01:40 | <haxjs> | oh sorry |
01:40 | <devsnek> | oh yeah i wasn't referring to your proposal hax sorry |
01:42 | <haxjs> | michaelficarra "I think the general feeling I got among delegates was that they could already alias in the body with a let declaration" --- naming it only the side effect of "this parameter syntax", I already listed many other important usages like annotation/decorator which never possible without syntax. |
01:42 | <devsnek> | Bakkot: was it you who said the host could just reject resolution |
01:42 | <devsnek> | if the as thing is present |
01:42 | <Bakkot> | that was keith_miller I think |
01:42 | <devsnek> | keith_miller: forgot to ping you above |
01:42 | <keith_miller> | Bakkot: What was me? |
01:43 | <Bakkot> | keith_miller "who said the host could just reject resolution" |
01:43 | <keith_miller> | I don't know where I'm looking |
01:43 | <Bakkot> | "if the as thing is present" |
01:43 | <devsnek> | if one host rejects the load and another host needs it |
01:43 | <keith_miller> | Oh, yeah |
01:43 | <keith_miller> | That was me |
01:43 | <devsnek> | your code can't be loaded by anything |
01:44 | <devsnek> | on the other hand if the web knows to load a manifest file |
01:44 | <keith_miller> | Uhh, I guess you need to know what host your running on |
01:44 | <devsnek> | well yeah |
01:44 | <devsnek> | but that's kind of unfortunate |
01:44 | <keith_miller> | I'm not saying it's a good practice |
01:44 | <devsnek> | i'm not sure there is a possible practice |
01:45 | <devsnek> | you support host a or host b |
01:49 | <MylesBorins> | thanks for the great feedback everyone |
01:49 | <michaelficarra> | bradleymeck hit the nail on the head here |
01:50 | <ljharb> | my question is similar, i think |
01:50 | <michaelficarra> | symbols if they implement multiple interfaces, strings otherwise |
01:50 | <rbuckton> | The problem is that its too early to know, these objects may have a dual purpose in the future. |
01:50 | <ljharb> | seems like making one thing have two purposes is problematic? |
01:51 | <michaelficarra> | if they're very clearly single-purpose, they're basically like an arguments bag: use strings |
01:51 | <michaelficarra> | otherwise, use symbols |
01:53 | <Bakkot> | two specific purposes would also be fine |
01:53 | <Bakkot> | the question is whether it's random other stuff, or just those things |
01:53 | <michaelficarra> | agreed Bakkot |
01:53 | <ljharb> | fair |
01:55 | <Bakkot> | e.g. iterator needed to be a protocol because you have all kinds of things which are iterable, .then needed to be a protocol because you have a kinds of things which can be in a promise, etc. but options bags should be string-based. |
01:56 | <Bakkot> | *_iterable_ needed to be a protocol. but iterator didn't. |
01:56 | <michaelficarra> | we should document this design philosophy somewhere |
01:56 | <michaelficarra> | it's important and the community should also be aware |
01:57 | <michaelficarra> | oh wait, I know! |
01:57 | <michaelficarra> | https://freenode.logbot.info/tc39-delegates/20200207#c3203202-c3203222 |
01:57 | <michaelficarra> | there we go, documented |
01:57 | <devsnek> | "Strings." is the motto of this month's tc39 |
01:57 | <devsnek> | oops wrong channel |
02:02 | <devsnek> | thanks everyone, see y'all next time! |
02:04 | <michaelficarra> | π devsnek |