Sign in

Rob Palmer

@robpalmer.bsky.social
8.2K followers 790 following 809 posts

JavaScript Infrastructure & Tooling at Bloomberg. Co-chairing TC39. Likely to tweet tech stuff about JS & software performance. Opinions are my own.

PostsRepliesMedia
Reposted by Rob Palmer
rem / Remy Sharp @remysharp.com · 07/10/2026
FOMO over recent conferences? Or even from last year? Join us next month in Brighton for 2026.ffconf.org - join your peers, join the conversations you can't have with your chatbot, join us for 8 amazing talks and one superb day. Get your ticket today, don't FOMO-FFCONF.
Between layoffs, AI hype, and a barely-recognisable industry, many of us in tech are wondering: now what? 8 speakers, Brighton, UK, Fri 13th Nov.
12414
Reposted by Rob Palmer
TypeScript.fm @typescript.fm · 01/10/2026
Today on the pod: Type-aware linting with oxlint, Vite+ ecosystem, and the future of TypeScript dev tooling with VoidZero's Cameron Clark & Jim Dummett. Learn what's next for dev tools. share.transistor.fm/s/95684100 #typescript
share.transistor.fm
Type-aware Linting, Vite+, and the Future of Dev Tooling | VoidZero | Ep 83B | TypeScript.fm - The Friendly Show for TypeScript Developers
In this special episode, the two fools are joined by Cameron Clark and Jim Dummett from VoidZero (and now, Cloudflare) to talk about the latest developments in type-aware linting, Vite+ and the Vite ecosystem,...
2184
Reposted by Rob Palmer
Ashley Claymore @ashley-c.bsky.social · 02/10/2026
I'm really excited with the amount of things we now have agreement on! Still some open design points to resolve before Stage 2.7 but have already had great input on these 🚀
1262
Rob Palmer @robpalmer.bsky.social · 01/10/2026
bsky.app/profile/robp...
010
Rob Palmer @robpalmer.bsky.social · 01/10/2026
bsky.app/profile/robp...
130
Rob Palmer @robpalmer.bsky.social · 01/10/2026
bsky.app/profile/robp...
110
Rob Palmer @robpalmer.bsky.social · 01/10/2026
bsky.app/profile/robp...
110
Rob Palmer @robpalmer.bsky.social · 01/10/2026
bsky.app/profile/robp...
110
Rob Palmer @robpalmer.bsky.social · 01/10/2026
bsky.app/profile/robp...
110
Rob Palmer @robpalmer.bsky.social · 01/10/2026
bsky.app/profile/robp...
130
Rob Palmer @robpalmer.bsky.social · 01/10/2026
The full agenda including links to the slides and presentation materials can be found here. Full meeting notes will be published in roughly two weeks time. github.com/tc39/agendas...
github.com
agendas/2026/09.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
140
Rob Palmer @robpalmer.bsky.social · 01/10/2026
The 116th meeting of @tc39.es was hosted by Sony Interactive Entertainment in Tokyo. Thanks to our hosts for again providing an excellent venue, facilities, refreshments, dedicated artwork(!), and an excellent events team 👍
A poster that says Sony Interactive Entertainment:  Welcomes the 116th Meeting of TC39A U-shaped table arrangement in the meeting room
180
Rob Palmer @robpalmer.bsky.social · 01/10/2026
ECMAScript excitement 😉 This week @tc39.es advanced these proposals 🎉 4️⃣ Dynamic Code Brand Checks 4️⃣ Iterator Chunking/Includes/Join 3️⃣ Thenable Curtailment 2️⃣.7️⃣ default in export * from "mod" 2️⃣.7️⃣ export defer 2️⃣.7️⃣ JSON.parse options 2️⃣ BigInt from Exponential 2️⃣ Composites 1️⃣ Pulling in AbortController
TC39 delegates in a meeting room
4579
Rob Palmer @robpalmer.bsky.social · 01/10/2026
Technically it's a shallow comparison. But if the children are all composites or primitives, that ends up being equivalent to a deep comparison. The comparison would fail if it hits two independent objects that have equivalent children. github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-composites
Contribute to tc39/proposal-composites development by creating an account on GitHub.
020
Reposted by Rob Palmer
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 30/09/2026
Incredible news 🤯🎉
0122
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Proposal repo github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-export-star-default: Proposal to include default export in `export * from 'module'`
Proposal to include default export in `export * from 'module'` - tc39/proposal-export-star-default
060
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Slides docs.google.com/presentation...
docs.google.com
2026-09 - default in export star for Stage 2 and 2.7
Nicolò Ribaudo Include default in export * from "./foo" for Stage 2 / 2.7 September 2026
160
Rob Palmer @robpalmer.bsky.social · 30/09/2026
ECMAScript excitement 😉 Congrats to @nicr.dev on advancing "Include default export in export * from" to Stage 2.7 at @tc39.es today 🎉 Today re-exporting the contents of another module omits the default export. It is believed this behavior change is web-compatible.
export * from 'mod';
export { default } from 'mod';  // redundant!
1332
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Proposal repo: github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-composites
Contribute to tc39/proposal-composites development by creating an account on GitHub.
070
Rob Palmer @robpalmer.bsky.social · 30/09/2026
These slides were presented today. docs.google.com/presentation...
docs.google.com
Composite November 2026
Composites for Stage 2 November 2026
270
Rob Palmer @robpalmer.bsky.social · 30/09/2026
ECMAScript excitement 😉 Congrats to @ashley-c.bsky.social from TechAtBloomberg on advancing the Composites proposal to Stage 2 at @tc39.es today 🎉 Composites are objects that are compared by value instead of identity. They are an evolution of Record & Tuple proposal.
const pos1 = Composite({ x: 1, y: 4 });
const pos2 = Composite({ x: 1, y: 4 });
pos1 === pos2; // true

const positions = new Set(); // the standard ES Set
positions.add(pos1);
positions.has(pos2); // true
913726
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Slides: docs.google.com/presentation...
docs.google.com
2026-09 - Deferred re-exports for stage 2.7
Deferred re-exports for Stage 2.7 export defer … from Nicolò Ribaudo & Caio Lima (Igalia, in partnership with Bloomberg) September 2026
030
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Proposal repo: github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-deferred-reexports
Contribute to tc39/proposal-deferred-reexports development by creating an account on GitHub.
140
Rob Palmer @robpalmer.bsky.social · 30/09/2026
ECMAScript excitement 😉 Congrats to @nicr.dev on advancing `export defer` to Stage 2.7 at @tc39.es today 🎉 It is a performance feature that permits lazy evaluation of re-exported bindings. It is useful for reducing the cost of partially-used barrel files 👍
export defer { y } from "mod1";
export defer { z } from "mod2";
2478
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Proposal repo: github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-bigint-from-exponential: A TC39 proposal for creating bigints from exponential-notation strings
A TC39 proposal for creating bigints from exponential-notation strings - tc39/proposal-bigint-from-exponential
020
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Slides: docs.google.com/presentation...
docs.google.com
Bigint from exponential for Stage 2 (2026-09)
Bigint from exponential notation 2026 September https://github.com/tc39/proposal-bigint-from-exponential
120
Rob Palmer @robpalmer.bsky.social · 30/09/2026
ECMAScript excitement 😉 Congrats to Richard Gibson on advancing BigInt from Exponential to Stage 2 at @tc39.es today 🎉 🔶 BigInt("1e2") It allows a BigInt to be created from a number that includes an exponential component 👍
2194
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Proposal repo: github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-json-parseimmutable: JSON.parseImmutable for creating Records and Tuples from JSON strings
JSON.parseImmutable for creating Records and Tuples from JSON strings - tc39/proposal-json-parseimmutable
041
Rob Palmer @robpalmer.bsky.social · 30/09/2026
Slides presented today docs.google.com/presentation...
docs.google.com
JSON.parse Options for 2.7
JSON.parse Options for 2.7 Peter Klecha & Ashley Claymore Bloomberg
150
Rob Palmer @robpalmer.bsky.social · 30/09/2026
ECMAScript excitement 😉 Congrats to @peet.bsky.social from TechAtBloomberg advancing JSON.parse Options to Stage 2.7 at @TC39 today 🎉 There are two independent opt-ins. 🔶 deep freezing the entire object 🔶 non-array objects get a null prototype Names may change ⚠️
JSON.parse(
    input: string, 
    reviverOrOptions?: Function | JsonParseOptions
): object
type JsonParseOptions = { 
    freeze?: boolean; 
    preferNullPrototype?: boolean 
}
1427
Reposted by Rob Palmer
WebStorm, a JetBrains IDE @webstorm.jetbrains.com · 25/09/2026
What if you could make one change to JavaScript? Absolutely anything you like. Justin Ridgewell tells us what he'd pick, straight from TC39's 114th meeting in Amsterdam. Watch the video 🎥 youtu.be/RHesVP6Seuo
youtu.be
If you had a superpower to make a single change to JavaScript – what would it be?
YouTube video by JetBrains
293
Reposted by Rob Palmer
Artem Zakharchenko @kettanaito.com · 29/09/2026
Now, that's a chunky proposal, indeed.
2131
Reposted by Rob Palmer
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 29/09/2026
👀 Great new JS feature Can be used for sliding window algorithms, such as a moving average Should also work on infinite streams, computing the moving average lazily
1181
Rob Palmer @robpalmer.bsky.social · 29/09/2026
Proposal repo github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-iterator-chunking: a proposal to add a method to iterators for producing an iterator of its subsequences
a proposal to add a method to iterators for producing an iterator of its subsequences - tc39/proposal-iterator-chunking
030
Rob Palmer @robpalmer.bsky.social · 29/09/2026
ECMAScript excitement 😉 Congrats to @michael.ficarra.me on advancing the Iterator Chunking proposal to Stage 4 at @tc39.es today 🎉 It can make iterators that chunk & window content. [0,1,2,3].values().chunks(2); // [0,1], [2,3] [0,1,2,3].values().windows(2); // [0,1], [1,2], [2,3]
2555
Rob Palmer @robpalmer.bsky.social · 29/09/2026
ECMAScript excitement 😉 Congrats to @bakkot.com on advancing Iterator Join to Stage 4 at @tc39.es today 🎉 Iterator.prototype.join() turns an iterator directly into a single string (with an optional separator) just like Array.prototype.join() github.com/tc39/proposa...
github.com
GitHub - tc39/proposal-iterator-join: JS proposal for a means to concatenate the contents of an iterator into a string
JS proposal for a means to concatenate the contents of an iterator into a string - tc39/proposal-iterator-join
1390
Rob Palmer @robpalmer.bsky.social · 27/09/2026
More potential advancements: 2⃣ BigInt from exponential 2⃣ Composites 2⃣ Private Declarations 1⃣ Pulling in AbortController The full agenda is here: github.com/tc39/agendas...
github.com
agendas/2026/09.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
0100
Rob Palmer @robpalmer.bsky.social · 27/09/2026
ECMAScript excitement 😉 Sony Interactive Entertainment will host this week's TC39 meeting in Tokyo. Potential advancements: 4⃣ Dynamic Code Brand Checks 4⃣ Iterator Chunking/Includes/Join 3⃣ Thenable Curtailment 2⃣.7⃣ default in export * 2⃣.7⃣ export defer 2⃣.7⃣ JSON.parse opts 🧵
2518
Reposted by Rob Palmer
Oliver Medhurst @honk.foo · 25/09/2026
the latest version of Porffor features ESM support! it not only removes needing a bundler beforehand but also makes compilation much faster as we can split C across modules
compilation time, selfhosted
react  17.31s → 4.16s (4.2x)
svelte  7.30s → 2.21s (3.3x)
preact  5.17s → 1.63s (3.2x)
solid   9.95s → 2.80s (3.6x)
4594
Reposted by Rob Palmer
James @43081j.com · 21/09/2026
giving old domains some use, we've published a basic site on ESM and how to migrate to it at esmodule.com if anyone wants to contrib a guide or improve one, please do! thanks to @iamstan.dev for putting the domain to good use 🙏
esmodule.com
ES Modules - The JavaScript module system
A guide to ES modules, the module system of JavaScript.
2288
Reposted by Rob Palmer
José Dapena Paz @jdapena.bsky.social · 21/09/2026
I was so lucky to start this project with people I admire so much... and even luckier with all who joined after. A kind of experiment still running today. A safe place where effort and talent are used to make the world a better place. I can proudly say: 25 years ago we were creating Igalia.
1304
Reposted by Rob Palmer
Rick Byers @rbyers.net · 21/09/2026
Happy 25th birthday @igalia.com. I am so inspired by the lasting value you have contributed to the web and society at large, and even moreso by your unwavering values in implementing that work. Here's to the next 25 years indeed! www.igalia.com/2026/09/21/T...
igalia.com
Twenty-Five Years Upstream | Igalia
Igalia is an open source consulting firm specialised in the development of innovative projects and solutions. Our engineers have expertise in a wide range of technological areas, including browsers an...
1245
Rob Palmer @robpalmer.bsky.social · 20/09/2026
Let us know if it starts quoting snippets without context
130
Reposted by Rob Palmer
TypeScript @typescriptlang.org · 17/09/2026
A new documentary about @vscode.dev is out! 🎬🎞️🍿 Check out The Story of VS Code, the story of the editor that brought the TypeScript experience to everyone! www.youtube.com/watch?v=kHL3...
youtube.com
The Story of VS Code | Official Documentary
YouTube video by Visual Studio Code
14711
Rob Palmer @robpalmer.bsky.social · 14/09/2026
Apologies. I misinterpreted the release notes 😬 Safari 27 does *not* ship Import Defer. It's still behind a flag despite being unflagged in Safari Tech Preview 251. The "New Features" section lists features that are progressing under-the-hood but not usable by end users.
021
Rob Palmer @robpalmer.bsky.social · 13/09/2026
Firefox and Chrome have implementations that are close to shipping. github.com/tc39/proposa...
github.com
`import defer` implementation tracker · Issue #73 · tc39/proposal-defer-import-eval
This issue is to link to various tooling and runtime implementations. Tools Acorn: acorn-import-phases plugin Babel 7.23 via @babel/plugin-proposal-import-defer babel/babel#15845 babel/babel#15878 ...
240
Rob Palmer @robpalmer.bsky.social · 13/09/2026
Safari's implementation of Import Defer was underpinned and enabled by a rewrite of their Module Loader by Kai Tamkun earlier this year. That rewrite fixed important long-standing bugs in ES2020 Top-Level Await. The full story is here: webkit.org/blog/18227/f...
webkit.org
Fixing Top-Level Await in Safari
WebKit for Safari 27 adds full spec compliance for top-level `await`.
180
Rob Palmer @robpalmer.bsky.social · 13/09/2026
A proposal for funding OSS developers by charging at the registry level.
0282
Reposted by Rob Palmer
Faris Aziz @farisaziz.com · 11/09/2026
@danielroe.dev make a brand new release of @npmx.dev on stage at @zurichjs.com
1416
Reposted by Rob Palmer
NullVoxPopuli @nullvoxpopuli.com · 03/09/2026
I'm declaring TypeScript 7 for Ember: ready At work, on the 3 million line monolithic package, I'm seeing ~ 4m40s -> 12s a ✨ 23x ✨ speed boost
3668