We're shipping `Object.groupBy` and `Map.groupBy` in Firefox 119! :firefox:
The initial proposal was a non-static `groupBy` method on `Array.prototype` but when we implemented it in Firefox Nightly we found out it wasn't web compatible. The second version, `group`, also broke some websites. The proposal was then changed to the static methods we have now.
Updates from the TC39 meeting in May 2023
@leaverou This was an interesting rabbit hole to dive down. Fundamentally I feel like there is a contradiction here:
First, private fields are intended to provide true, unspoofable encapsulation of state.
Second, proxies are intended to introspect and intercept operations on an object.
These are inherently conflicting goals and you cannot provide either without violating the other. This means using private fields + proxies will fundamentally be broken, the question is just about *how* it's broken.
Seems #TC39 went with the first option. We can certainly debate which one is better, and it's always possible the second approach would have a better outcome. But in the end if we did go that route there would be just as many blog posts about "Proxies considered harmful" or "Private fields aren't actually private, so why are we bothering, just use TypeScript".
This really feels like a "damned if you do, damned if you don't" situation.
Updates from the TC39 meeting in March 2023
every time i see “using” in c# or “from foo import *” in python, i throw up a little in my mouth
then feel a little more thankful for #TC39
Updates from the TC39 meeting in January 2023
Updates from the TC39 meeting in November 2022
Hello! My current Big Project is fixing #localization, making it easier for software and sites to communicate in various human languages. So I'm spending quite a bit of time in #unicode and #tc39 trying to shepherd along spec proposals so that we can fix this for everyone. Nowadays I even get paid for this, on account of being a staff software engineer on the l10n team at #mozilla.
I am passionate about making software, knowledge, and information accessible to everyone around the world.
To this end, I'm a Staff Software Engineer at Google on the #i18n engineering team. I lead the team that builds ICU4X, the open-source, modular, portable i18n library in #Rust. I chair #TC39 TG2 for better i18n in #ECMAScript.
I built octave-online.net to make scientific computing more accessible.
[NaN].includes(NaN) // true
new Set([NaN]).has(NaN) // true
Of course the numerical programmers know that
NaN === NaN // false
so the concession to ergonomics above (in arrays and set, and also in records and tuple) was surprising.
It was cool that they explicitly called out Bloomberg's "psychologically safe culture" and its "lack of heavyweight perf/promo cycles".
I thought Bloomberg just had 💵💸💴 to spend on Igalia, et al., but folks here say that this didn't happen because of (just) 💰 but how collaborative these Bloomberg teams are with the open-source community.
Read the details here: https://github.com/PaulKiddle/switch-comparison-expression-proposal
What do people think, is this a good idea? Worth submitting it as an actual proposal?
ESNext: Declarations in Conditionals (Stage-1)
#Scala and JVM is spoiling me, allowing tuples as keys in maps/sets, which JS can't do…