Kevin Gibbons

478 posts

Kevin Gibbons banner
Kevin Gibbons

Kevin Gibbons

@bakkoting

JavaScript, TC39, language design, math. I try to avoid twitter, but some conversations only happen here.

Katılım Mayıs 2015
49 Takip Edilen515 Takipçiler
Kevin Gibbons
Kevin Gibbons@bakkoting·
My most idiosyncratic JS opinion is that we should all write `0, { x } = y;` instead of `({ x } = y);` so you don't have to jump to the end of the line to add the parenthesis. If only I could convince tooling to support this... (i.e. get prettier not to add the parentheses)
English
0
0
0
37
kip
kip@sergeantsup·
it is absurd how much my body is changing in a clean environment 1. lower HR 2. much easier to fall asleep and stay asleep 3. not getting migraine symptoms so often 4. light doesn't bother me anymore 5. sound bothers me much less 6. eyes not even a little itchy 7. nose way less congested when lying down 8. eating protein feels much less mysteriously-difficult 9. no longer uncomfortably tight "down there" (if you know what I mean (am I right ladies)) 10. rosacea going away I am shocked I didn't even realize all of these symptoms started after moving into that apartment. these symptoms started at very different times — it wasn't like "I just moved in somewhere new and now my body is doing a ton of weird things" *all* of these symptoms are things that I put a lot of time into debugging individually. I saw many doctors. did so much LLM research. I found partial solutions to most of them and now none of that is relevant because everything is resolving itself. I just noticed the rosacea thing today, wtf. I thought "hmm I feel like my face looks pale" til I realized plus there's the downstream effects of all this... like of course my mental health is way better without insomnia, of course everything feels nicer without inflammation all over my body
English
2
0
35
935
Kevin Gibbons
Kevin Gibbons@bakkoting·
@robpalmer2 @proxy_vector @jarredsumner Base64 shipped in stable Safari 9 months before it shipped in stable Chrome (2024-12-11 vs 2025-09-02), for example. And because bun picks up JSC faster than node picks up V8, it shipped in Bun on 2024-08-07 and in Node not until 2025-10-15.
English
0
0
1
51
Rob Palmer
Rob Palmer@robpalmer2·
@proxy_vector @jarredsumner Node already supports `using`. Bun could follow. Are there past examples of Bun shipping unflagged ECMAScript features before Node? For the last few years, JSC has generally not shipped features ahead of V8.
English
1
0
0
78
Jarred Sumner
Jarred Sumner@jarredsumner·
Guess the new JavaScript feature we’re adding support for in Bun v1.3.9
English
68
1
335
39.5K
Kevin Gibbons
Kevin Gibbons@bakkoting·
@simonw For the Random button, sessionStorage would be more appropriate. That'll be specific to the current tab.
English
1
0
8
1.2K
Simon Willison
Simon Willison@simonw·
I wrote about a localStorage trick I've been using to add dynamic per-user features to my blog despite it being served behind a 15 minute Cloudflare cache meaning everyone gets the exact same HTML simonwillison.net/2026/Jan/28/dy…
English
4
9
247
27.4K
Kevin Gibbons
Kevin Gibbons@bakkoting·
@as0355 @robpalmer2 @matteocollina @nodejs V8 uses a lot of libraries and increasingly the libraries it would want to use will be written in Rust. Porting this and other such libraries to C++ would be a lot of work for little gain and significant downsides. And Temporal is user-exposed, so safety matters a lot.
English
0
0
1
29
Alex 🟧
Alex 🟧@as0355·
@bakkoting @robpalmer2 @matteocollina @nodejs Chrome and V8 are different things. Using multiple languages in a big application makes sense, less so for a library. Plus, memory safety ends at the language border. This is only one API, so it doesn't safeguard against a great deal.
English
1
0
0
82
Rob Palmer
Rob Palmer@robpalmer2·
📜 "Date is out, Temporal is in" An article by Mat Marquis on problems found in the ancient JS Date API and how they are solved in the modern Temporal API - available now in Chrome 144 🎉 It focuses on immutability & ergonomics of calculations. Love the kicker. 🔗👇
Rob Palmer tweet media
English
4
12
223
16.5K
Kevin Gibbons
Kevin Gibbons@bakkoting·
@as0355 @robpalmer2 @matteocollina @nodejs It is very very large. Also, Chrome already uses Rust libraries elsewhere, and I expect V8 will want to do so in the future as well. Had to happen sometime, might as well happen now. (Plus memory safety is nice, especially for JS engines.)
English
1
0
1
75
Alex 🟧
Alex 🟧@as0355·
@robpalmer2 @matteocollina @nodejs Is there a compelling reason not to just reimplement temporal_rs in C++? Bringing in multiple languages to V8 seems risky and hard to maintain.
English
3
0
0
103
Kevin Gibbons
Kevin Gibbons@bakkoting·
@jarredsumner @izs You could download a top 10000 npm packages and check their package.jsons, I would bet there's 0. If you want to be really safe, do `a:platform=win32` or some other slightly more obscure string.
English
0
0
2
100
Jarred Sumner
Jarred Sumner@jarredsumner·
@izs I like the convention and agree it’s the most obvious choice But people might already have scripts that do that and this would break those? like if the script expected the unnamespaced one to be called
English
3
0
2
882
Jarred Sumner
Jarred Sumner@jarredsumner·
Say we wanted `bun run <my script>` to support os-specific package.json `"scripts": {
English
14
0
38
20.5K
Kevin Gibbons
Kevin Gibbons@bakkoting·
@cramforce @apaprocki @styfle That is a bad summary. The key part of the second set of notes is "several implementers have been expressing some hesitation to being the first to ship decorators, and so it’s kind of a -- a little bit of a standstill at the moment" Nothing has changed since then.
English
0
0
1
26
Malte Ubl
Malte Ubl@cramforce·
Huge miss in TS/JS that decorators don't work on functions. Is that in the works at all?
English
21
1
126
26.7K
Oliver Medhurst
Oliver Medhurst@CanadaHonk·
the rabbit hole grows so deep
Oliver Medhurst tweet media
English
3
0
10
1.3K
Oliver Medhurst
Oliver Medhurst@CanadaHonk·
what do you think this js logs? function foo() { console.log('foo'); } foo(); { function foo() { console.log('bar'); } foo(); } foo();
English
4
1
23
10.7K
Kevin Gibbons
Kevin Gibbons@bakkoting·
Several people blamed the recent npm incidents on JS's minimal standard library. I think that's wrong: the affected packages are mostly either already covered by node or could not reasonably be in a standard library. But! I'm always taking suggestions for new stdlib features.
English
0
0
2
121
Kevin Gibbons
Kevin Gibbons@bakkoting·
@ljharb @sawyerhood I suspect we'd still find a lot of stuff before the threshold is reached, but even if not, everyone doing this would still help with stuff like the recent worm, because it would add a 1-day delay before the worm to jump from one package to another.
English
0
0
0
22
Jordan Harband
Jordan Harband@ljharb·
@sawyerhood until enough people do this, and it takes an extra day to discover problems
Sardinal, Costa Rica 🇨🇷 English
1
0
0
250
Kevin Gibbons
Kevin Gibbons@bakkoting·
@matteocollina @nodejs I feel like this has gotten much better since ~14 or so. Used to be every time I updated Node something broke, but that's mostly not the case lately. Having more builtins (sqlite, etc) also helps tremendously, since those keep working.
English
0
0
2
206
Kevin Gibbons
Kevin Gibbons@bakkoting·
@jarredsumner You're not bound by web platform rules, but fwiw W3C has a design principle for this, which implies `stripANSI`
Kevin Gibbons tweet media
English
2
0
7
398
Kevin Gibbons
Kevin Gibbons@bakkoting·
@CanadaHonk @bradleymeck The implementation of the hex/base64 functions can be simd in engines though! It is in V8/JSC via the simdutf library for example. I'm sure someone has done a base64 decoder using wasm's simd instructions, but if not it would be a fun exercise.
English
0
0
3
58
Oliver Medhurst
Oliver Medhurst@CanadaHonk·
Porffor's status of these TC39 proposals! ✅ Math.sumPrecise 🆕 Uint8Array ↔️ base64/hex ❌ Iterator Sequencing ✅ Upsert ❌ Immutable ArrayBuffer ❌ Intl Era/Month Code ❌ Import Bytes ❌ Module Global 🏗️ Array.getNonIndexStringProperties 🏗️ Object.getOwnPropertySymbols opts
Rob Palmer@robpalmer2

ECMAScript excitement 😉 TC39 advanced: 4️⃣ Math.sumPrecise 4️⃣ Uint8Array ↔️ base64/hex 3️⃣ Iterator Sequencing 3️⃣ Upsert 3️⃣ Immutable ArrayBuffer 2️⃣.7️⃣ Intl Era/Month Code 2️⃣ Import Bytes 1️⃣ Module Global 1️⃣ Array.getNonIndexStringProperties 1️⃣ Object.getOwnPropertySymbols opts

English
4
2
74
4.2K
Rob Palmer
Rob Palmer@robpalmer2·
ECMAScript excitement 😉 Congrats to @bakkoting on advancing UInt8Array ↔️ Base64/Hex to Stage 4 @TC39 this week 🎉 UInt8Array.prototype. toBase64 toHex UInt8Array. fromBase64 fromHex It lets you convert directly between binary data and Base64/Hex strings 👍
Rob Palmer tweet media
English
3
28
191
12.5K
Kevin Gibbons
Kevin Gibbons@bakkoting·
@matthewcp @rbuckton @ljharb "People thought their name would be more understood than it was" is a completely correct criticism. But it is a different criticism from "people cared about theoretical correctness over understandability".
Kevin Gibbons tweet media
English
0
0
1
57
Kevin Gibbons
Kevin Gibbons@bakkoting·
@matthewcp @rbuckton @ljharb The argument was that globalThis was not inside-baseball. I disagree and disagreed at the time. But people did quite sincerely think that developers would understand the name because they would already have experience with what "this" did at the top level.
English
2
0
1
86
Matthew Phillips
Matthew Phillips@matthewcp·
I still can't believe they called it globalThis.
English
15
6
219
17.7K
Kevin Gibbons
Kevin Gibbons@bakkoting·
@matthewcp @rbuckton @ljharb Perhaps you're misreading me? The argument was explicitly "we think people will probably understand it". That argument was mistaken, IMO. But that's what the dominant argument was. This is not an argument based on "correctness".
English
1
1
3
63
Kevin Gibbons
Kevin Gibbons@bakkoting·
@matthewcp @rbuckton @ljharb As one of the people who fought hardest against "globalThis" (I had a whole bonus presentation about it after we'd already got consensus): this isn't accurate. The arguments for it were all of the form "people hopefully know what `this` is". No one cares what the spec looks like.
English
1
0
4
84
Matthew Phillips
Matthew Phillips@matthewcp·
@rbuckton @ljharb That's my point, engine devs care more about how things look in their spec document than about how it makes sense to developers using their product.
English
2
0
1
131