00:13:45  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:13:51  * mattijsjoined
00:16:15  * mattijs_joined
00:17:57  * mattijsquit (Ping timeout: 240 seconds)
00:35:55  * mattijs_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:38:36  * keith_millerjoined
00:56:36  * AtumTquit (Remote host closed the connection)
01:06:46  * mattijsjoined
01:09:05  * mattijsquit (Client Quit)
01:29:53  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:30:22  * jwaldenquit (Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805])
01:55:44  * keith_millerjoined
02:08:43  * jmdyckquit (Quit: Leaving.)
02:09:21  * jmdyckjoined
02:13:45  * not-an-aardvarkjoined
02:37:55  * atticoos_quit (Ping timeout: 256 seconds)
02:38:44  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:22:16  * mattijsjoined
03:32:09  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:14:37  * jmdyckquit (Remote host closed the connection)
05:47:04  * keith_millerjoined
05:49:03  * cloudshuquit (Quit: Connection closed for inactivity)
06:55:33  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:03:29  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
09:17:47  * atticoos_joined
10:25:07  * mylesborinsquit (Quit: farewell for now)
10:25:38  * mylesborinsjoined
10:26:40  * keith_millerjoined
11:44:27  * jmdyckjoined
12:47:27  * howdoiquit (Quit: Connection closed for inactivity)
12:58:15  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:40:09  * cloudshujoined
14:06:43  * jmdyckquit (Ping timeout: 246 seconds)
14:18:13  * jmdyckjoined
14:28:26  * keith_millerjoined
14:33:39  <devsnek>littledan: what is classes 1.1?
14:34:05  <littledan>https://github.com/zenparsing/js-classes-1.1
14:35:22  <littledan>jschoi: Could you open up your proposal repository for filing issues? I think that can be done in the settings tab
14:35:33  <devsnek>arrow accessor + existing private properties
14:35:34  <littledan>I'd like to write my feedback there
14:35:37  <devsnek>without hashes
14:35:43  <devsnek>and `private` keyword
14:35:53  <devsnek>offers another way to statically parse them
14:36:00  <littledan>it's with `var`/`hidden` keywords. Also, you use -> rather than .#
14:36:03  <jschoi>littledan: Will do, thanks. Got your email.
14:36:14  <littledan>jschoi: Good
14:36:18  <devsnek>I meant like with the existing private fields proposal
14:36:30  <littledan>devsnek: I don't follow
14:36:32  <devsnek>these could be nicely combined to get rid of the hash
14:36:46  <devsnek>and use `private x` instead of `#`
14:37:00  <littledan>for example, we could just switch from .# to ->, and use a different declaration keyword, and keep everything the same
14:37:10  <devsnek>yea that's what I'm saying
14:37:15  <littledan>I'd be worried about using the `private` keyword because then, if you run unmodified TS code, things will suddenly not be private
14:37:22  <littledan>since TS uses . for its private property access
14:37:33  <devsnek>why does that matter
14:37:36  <littledan>if there's no initializer, the only way to notice you made a mistake is to read it outside the class
14:37:58  <devsnek>we have to cater to TS users now?
14:38:06  <littledan>well, I think it's a pretty likely thing for people to trip up on, and unlike other things where you would get an exception at some point, this would never cause an exception--just entirely defeat the purpose of the proposal
14:38:21  <devsnek>they should know what they're getting in to
14:38:30  <jschoi>littledan: Issues opened for Smart pipelines.
14:38:44  <devsnek>and they're opting out of the existing ecosystem by transpiling code
14:39:06  <littledan>yes, everyone should know everything. but we all come from different backgrounds, are informed by the culture around us, etc, and I think it makes sense to take these things into account when designing a programming language
14:39:29  <devsnek>I understand taking mootools breaking features into account
14:39:43  <littledan>you're right, this is an entirely different concern
14:39:44  <devsnek>I don't understand taking TS behaviour into account
14:39:46  <littledan>it's not a web compatibility issue
14:40:10  <littledan>for example, JS belongs to the "curly brace" family of languages--this has impacted people's experience in learning other languages before or after JS, even if it doesn't correspond to any sort of hard requirement
14:40:31  <littledan>lots of people cross over between TS and JS, and understand them to correspond to each other; it seems reasonable to take TS into consideration
14:40:49  <devsnek>agree to disagree :)
14:40:57  <littledan>even if, at the same time, we're not taking "do exactly what TS does" as a design goal
14:41:28  <littledan>just, this is a closely related language which sits really nearby in the ecosystem; let's see what we can learn from it
14:41:49  <devsnek>I was surprised to learn it compiles to just regular property access
14:41:56  <littledan>for example, we learned that public fields are in high demand from programmers of TS and Babel
14:42:11  <littledan>even if it's not yet in JS
14:42:12  <devsnek>I expected it to use the closure it already makes for compiled classes
14:43:35  <littledan>yeah, so this is a good example of where TC39 is not going to do what TS does--even though a big segment of the community wants us to, there are some more subtle problems from it, e.g., when you want to evolve programs and not be held back by other code circumventing privacy protections
14:43:36  <devsnek>what do people want public fields for vs this.x = undefined in the constructor
14:43:57  <devsnek>all I can think of is consistency
14:44:04  <devsnek>which is obviously quite important
14:45:17  <littledan>There was an explainer written all about this, https://github.com/tc39/proposal-class-public-fields/blob/4fce08730d273f4c6531021ee7efdc0c5b6591cf/README.md
14:45:23  <littledan>it's not just consistency
14:46:36  <devsnek>will read
14:53:04  * bradleymeckjoined
15:05:35  <Domenic>Bakkot: https://github.com/zenparsing/js-classes-1.1/issues/27#issuecomment-372457510 is solid work
15:06:53  * mattijsjoined
15:15:14  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:29:57  * jmdyckquit (Ping timeout: 240 seconds)
15:30:19  * jmdyckjoined
15:31:13  * bradleymeckquit (Quit: bradleymeck)
15:40:27  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:45:05  * mattijsjoined
15:54:03  * caridy_quit (Remote host closed the connection)
15:54:42  * caridyjoined
16:10:04  * bradleymeckjoined
16:13:08  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:37:08  * mattijsjoined
16:37:20  * keith_millerjoined
16:49:40  <TabAtkins>Re: TS and JS; we do similar in CSS, giving some consideration to Sass and similar languages. We'll still make whatever decisions are best for CSS, but if there's not a strong preference between two options and one is better for Sass, we'll usually choose that one.
16:52:37  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:53:05  <TabAtkins>I like the classes-1.1 new changes. The class initializer, in particular, seems very useful and well-motivated.
16:59:57  * atticoos_quit (Ping timeout: 246 seconds)
17:06:36  <devsnek>it's pretty interesting
17:06:48  <devsnek>I don't like the term "hidden" though
17:07:29  <cloudshu>TabAtkins: i agree, i like that part very much
17:07:48  <cloudshu>TabAtkins: i have more reservations around the rest
17:07:58  <TabAtkins>It's Python's __init__ (vs the constructor, which is Python's __new__).
17:08:14  <TabAtkins>I do have a slight aesthetic preference for -> over .# ^_^
17:08:28  <devsnek>that's my favourite part
17:08:38  <devsnek>it enables using a proper private keyword :)
17:25:52  * jwaldenjoined
17:29:54  <ljharb>TabAtkins: there's some neat stuff in it to be sure
17:30:14  <ljharb>but a proposal that doesn't have instance initializers imo is ignoring a critical use case
17:34:57  <bradleymeck>i'm a bit concerned that this seems to me at least to be more mentally complex for me. it changes from having private names being a key-like concept, to a having a special operator for a special binding type
17:36:02  <bradleymeck>i'm also concerned about shorthand syntax, and that this makes me worry about creating anonymous private names since they aren't really key-like anymore
17:36:40  <bradleymeck>i could have seen `private #a;` be a way to declare a PrivateName key in the current proposal, but cannot imagine how that would work with the new one
17:37:19  <ljharb>oh it's definitely more complex in some ways, despite striving to be less complex
17:39:17  <bradleymeck>if the complaint is just # vs ->, I am not really tied to # and think `private ->a` or `class { ->a; }` would be fine
17:40:53  <bradleymeck>key-like is super nice since Symbols are that in nature and act ~= to soft private
17:41:20  * jwalden_joined
17:41:25  <bradleymeck>so all 3 types of visibility would be using the same kind of mental model for me
17:42:11  <ljharb>yeah i don't care about # vs ->
17:42:23  * Fishrock123joined
17:44:29  * jwaldenquit (Ping timeout: 260 seconds)
17:44:30  * jwalden_changed nick to jwalden
17:46:35  * keith_millerjoined
17:51:35  * atticoosjoined
17:57:32  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:01:11  * keith_millerjoined
18:10:56  <Bakkot>devsnek / littledan: I am quite strongly opposed to `private x; as declaration with anything other than `this.x` for reasons unrelated to TS: which is why that is the first question in the FAQ
18:10:58  * Fishrock123quit (Remote host closed the connection)
18:12:20  <Bakkot>"var" seems distasteful for other reasons, but "hidden x" as declaration would not have either of those problems.
18:13:14  * jwaldenquit (Quit: almost at 4th and King, should be in the office soonish)
18:13:19  <bradleymeck>Bakkot: inside classes I agree, but I would like to see it outside of classes as something similar to `var/let/const` but not allowing an initializer if possible
18:13:32  <bradleymeck>it removes almost all of my uses of weakmaps procedurally
18:14:07  <Bakkot>yeah, don't have an opinion on its use outside of classes
18:20:44  <devsnek>the argument about using `private` disrupts typescript is pointless imo
18:20:56  <devsnek>they can still transpile however they want
18:33:18  * jwaldenjoined
18:34:30  <Bakkot>eh, it would be good to avoid causing unnecessary disruption to them
18:34:56  <Bakkot>but I think the argument that people will just write `this.x` and it will work without errors but with the wrong semantics is much, stronger
18:37:43  * Fishrock123joined
18:57:32  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:45:39  * mattijsjoined
19:51:31  * atticoosquit (Ping timeout: 256 seconds)
19:56:51  <littledan>Bakkot: Do you think `hidden` would have less of that risk?
19:58:34  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:59:39  * keith_millerjoined
20:20:11  <Bakkot>littledan: yes, much, since it lacks a differing precedent
20:20:17  <Bakkot>far from none, but less
20:21:00  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:36:35  * cloudshuquit (Quit: Connection closed for inactivity)
20:53:43  * keith_millerjoined
21:01:49  * mattijschanged nick to mattijs[away]
21:01:51  * mattijs[away]quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:19:17  * Fishrock123quit (Remote host closed the connection)
21:20:57  * Fishrock123joined
21:24:24  * mattijsjoined
22:04:33  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:38:13  * bradleymeckquit (Quit: bradleymeck)
22:39:59  * keith_millerjoined
22:57:19  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:02:38  * keith_millerjoined
23:11:33  * cloudshujoined
23:27:26  * mattijsquit (Ping timeout: 276 seconds)
23:30:10  * Fishrock123quit (Quit: Leaving...)
23:30:30  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:35:34  * keith_millerjoined
23:37:06  * mattijsjoined
23:37:36  * jwaldenquit (Quit: training, back just before 17:00ish ZST)
23:59:23  * jwaldenjoined