Sign in

Rob Palmer

@robpalmer.bsky.social
8.2K followers 790 following 798 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
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 11h
Incredible news 🤯🎉
0102
Rob Palmer @robpalmer.bsky.social · 11h
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!
1302
Rob Palmer @robpalmer.bsky.social · 11h
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
48614
Rob Palmer @robpalmer.bsky.social · 11h
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";
2357
Rob Palmer @robpalmer.bsky.social · 16h
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 👍
2174
Rob Palmer @robpalmer.bsky.social · 17h
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 
}
1366
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
292
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
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]
2545
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
1380
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 🧵
2517
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)
4574
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
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
04710
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
3658
Reposted by Rob Palmer
Jiahan Chen @chenjiahan.bsky.social · 01/09/2026
Excited that TypeScript will finally support module types based on import attributes! Bundlers and frameworks can now provide accurate types for custom imports:
27116
Reposted by Rob Palmer
Philipp Dunkel @pipobscure.com · 27/08/2026
Time for more celebration! Node v26.8.0 is out and it has the first part of support for ZIP files! nodejs.org/en/blog/rele... Next up: vfs support for ZipArchives 😀
nodejs.org
Node.js — Node.js 26.8.0 (Current)
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
1173
Reposted by Rob Palmer
Daniel Rosenwasser @danr.bsky.social · 27/08/2026
This was a really fun chat with @joshuakgoldberg.com. Thanks for having me @softwaredaily.bsky.social!
0152
Reposted by Rob Palmer
Jake Bailey @jakebailey.dev · 20/08/2026
it's happened
Migrate repo to TypeScript 7- #63763
#63763
Merged
microsoft:main
jakebailey:main-ts7
2 minutes ago
+2,928,712
-6,073,031
Lines changed: 2928712 additions & 6073031 deletions
Conversation7 (7)
Commits2495 (2495)
Checks23 (23)
Files changed3000+ (3000+)
Conversation
@jakebailey
Jake Bailey (jakebailey)
4 hours ago
412211
Rob Palmer @robpalmer.bsky.social · 19/08/2026
ECMAScript excitement 😉 Congrats to @yusukesuzuki.bsky.social on shipping TC39 Stage 3 Import Defer in upstream WebKit, heading for Safari 🎉 Import Defer is a performance feature that lets you lazily execute a module on first access to the module namespace 🔥 github.com/WebKit/WebKi...
import defer * as ns from "./mod.js";
// mod.js is fetched and linked now, but NOT evaluated.

console.log("before");
console.log(ns.value);   // <-- mod.js evaluates here, synchronously
2589
Rob Palmer @robpalmer.bsky.social · 15/08/2026
Congrats to Bas Schouten on landing the Container Timing API in upstream Firefox, heading for Firefox 156 🎉 It lets you know when a specific area of a web page has rendered. It will often be more meaningful than LCP. bugzilla.mozilla.org/show_bug.cgi...
bugzilla.mozilla.org
1940240 - Implement Container Timing API
RESOLVED (bas) in Core - DOM: Performance APIs. Last updated 2026-08-14.
0244
Rob Palmer @robpalmer.bsky.social · 14/08/2026
An article on the trend of managers returning to coding by Chantal Kapani featuring @emmabostian.bsky.social from Spotify and @pcwilliams.net from Bloomberg. leaddev.com/management/e...
leaddev.com
Engineering managers are back in the codebase
A growing share of engineering managers are coding again. AI has lowered the barrier back into the codebase, but has the core EM job changed?
0112
Reposted by Rob Palmer
Igalia @igalia.com · 12/08/2026
BIG NEWS: Bocoup is now Igalia! The two worker co-ops have agreed to join forces, with several members of Bocoup coming aboard at Igalia, along with the brand assets and web site. More details in our official announcement: www.igalia.com/2026/Joining...
Igalia + Bocoup
412438
Reposted by Rob Palmer
Ashley Claymore @ashley-c.bsky.social · 11/08/2026
Just added Composites* for Stage 2 to the next TC39 agenda. github.com/tc39/proposa... Slides: docs.google.com/presentation... PR: github.com/tc39/agendas... *API name placeholder
github.com
GitHub - tc39/proposal-composites
Contribute to tc39/proposal-composites development by creating an account on GitHub.
2507
Reposted by Rob Palmer
John Reilly @johnnyreilly.com · 08/08/2026
Lovely to see the work being done on migrating ts-loader to support TypeScript 7.1 get a shout out on TypeScript FM ❤️ Outside of that, thanks for the congratulations on the good news I recently had around my cancer treatment. God willing, I'll have even more good news in future!
johnnyreilly.com
Migrating ts-loader to TypeScript 7.1 with AI
How I used AI to migrate ts-loader to TypeScript 7.1.
1194
Reposted by Rob Palmer
Jonas Kruckenberg @jonaskruckenberg.de · 10/08/2026
@jonkuperman.com is the best! go work with him!
1112
Rob Palmer @robpalmer.bsky.social · 10/08/2026
We're hiring a Technical Product Manager for Web Platform & Frameworks infrastructure at Bloomberg in New York. You'll be working with me and @jonkuperman.com plus a whole bunch of folks excited by web technologies ✨ Feel free to DM with questions. bloomberg.avature.net/careers/JobD...
bloomberg.avature.net
Technical Product Manager - Web Platform &amp; Frameworks - CTO Office
03617
Reposted by Rob Palmer
TypeScript.fm @typescript.fm · 07/08/2026
Today on the pod: TS 7.1 plans, native JSX in ASP.NET Core, Elysia 2 beta rewrite, plus semver-ts, type-safe TSConfig builders & more from the community. share.transistor.fm/s/78c21519 #typescript
share.transistor.fm
TS 7 Compiler API Plans, Elysia 2 Beta, and JSX in ASP.NET Core | News | Ep 76 | TypeScript.fm - The Friendly Show for TypeScript Developers | Episode 76
News for the week of July 27, 2026: insights into what's coming in TS 7.1, rendering JSX and TSX natively using ASP.NET Core, and Elysia gets rewritten with the new v2 beta. From the community: semantic...
4185
Reposted by Rob Palmer
Colin McDonnell 💎 Zod @colinhacks.com · 08/08/2026
In the latest version of Nub Support for Promise.allKeyed() and Promise.allSettledKeyed() — the object form of Promise.all()
3272
Reposted by Rob Palmer
Joyee Cheung @joyeecheung.bsky.social · 08/08/2026
Added some new commands to the GDB & LLDB plugin for V8.. `v8 source`: shows the JS source of the selected frame `v8 isolate`: find the isolate address in the current thread, works from the coredump too (implementing that in LLDB was quite a bit of challenge!)
Screenshot showing v8 isolate and v8 source
0153
Reposted by Rob Palmer
Andrew Branch @andrewbran.ch · 07/08/2026
Thanks for mentioning the APIs and arethetypeswrong! ❤️ I feel like I need to get the word out that the compiler APIs are available today in nightlies, and even in 7.0, they’re just under “typescript/unstable” to make it clear that we reserve the right to make breaking changes before 7.1.
3134
Reposted by Rob Palmer
Firefox for Web Developers @webdevs.firefox.com · 04/08/2026
JS promise integration for WebAssembly landed in Firefox 153, making it easier to work with asynchronous calls from Wasm. Here's how it works:
313220
Rob Palmer @robpalmer.bsky.social · 04/08/2026
Andrew describes the relationship between the version conflict resolution strategies chosen by different package ecosystems and how that determines where costs are incurred.
0145
Reposted by Rob Palmer
Philippe Serhal @philippeserhal.com · 02/08/2026
🧾 Introducing npm.tax Estimate the probability of being impacted by a breach in your npm supply chain. Adjust the knobs to see how slimming your node_modules lowers your risk. Look up a package to see its own risk profile, then share the report, e.g. npm.tax?direct=59&tr.... What's your npm tax?
npm.tax
npm.tax: npm supply-chain risk explorer
Explore how your code, npm dependency count, breach probability, and time horizon combine into cumulative supply-chain risk.
57814
Reposted by Rob Palmer
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 27/07/2026
👀 JS Composites proposal update "After benchmarking and general reflection, the proposal is now pursuing an interning based approach." - @acutmore We didn't get Records & Tuples but we may still get interned data structures in JS! Really exciting update if this lands in JS
4579
Reposted by Rob Palmer
Alexander Lichter @thealexlichter.com · 28/07/2026
Summer break is over: The @e18e.dev & friends show is coming back next week 🎉 And we got nobody else than the one and only @honk.foo talking about Porforr and how a future for natively compiled JavaScript could look like! Swing by at 7pm CEST / 1pm EDT on August 4th 👌 youtube.com/live/L8Edgas...
youtube.com
e18e & friends E004 - Oliver Medhurst
What if you could compile JavaScript to Native but ahead of time? W...
14812
Reposted by Rob Palmer
TypeScript @typescriptlang.org · 28/07/2026
Have you been using TypeScript 7? @ahejlsberg.bsky.social shows off what 10x faster build & editing experiences look like with @vscode.dev!
youtube.com
TypeScript 7 Is Here (And It's 10× Faster)
YouTube video by Microsoft Developer
57018
Reposted by Rob Palmer
Dominic Gannaway @trueadm.dev · 27/07/2026
Happy to announce Octane – the successor to Inferno. React’s programming model, compiled. Hooks, Suspense and Actions, compiled ahead of time. No virtual DOM. No Rules of Hooks. No manually maintained dependency arrays. The compiler understands what your code. octanejs.dev
// Counter.tsrx — hooks next to output, no rules of hooks
import { useState, useEffect } from 'octane';

export function Counter(props) @{
	const [count, setCount] = useState(0);

	// A hook behind a condition is fine — slots are
	// assigned by call site, not call order.
	if (!props.paused) {
		useEffect(() => {
			console.log('count is now', count);
		}); // the compiler infers [count]
	}

	<button onClick={() => setCount(count + 1)}>{'Count: ' + count}</button>
}
814319
Reposted by Rob Palmer
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 27/07/2026
⚠️ Promise.all() makes your code sensitive to destructuring order 🆕 Promise.allKeyed() is IMHO a better alternative in many cases I've been using my "combine-promise" lib for that, and can finally deprecate it soon
1475
Rob Palmer @robpalmer.bsky.social · 27/07/2026
ECMAScript excitement 😉 Congrats to my coworker @ashley-c.bsky.social at TechAtBloomberg on advancing Await Dictionary to Stage 3 at TC39 🎉 Promise.all returns positional results as an array. Promise.allKeyed allows named results inside an object 👍 github.com/tc39/proposa...
const {
  shape,
  color,
  mass,
} = await Promise.allKeyed({
  shape: getShape(),
  color: getColor(),
  mass: getMass(),
});
116621
Reposted by Rob Palmer
danielroe @danielroe.dev · 27/07/2026
this is a survey that's really worth taking > So while there's still a human in the loop, let's leave aside libraries and frameworks and just check in: how are you doing, really?
survey.devographics.com
State of Devs 2026
Take the State of Devs survey
15413
Reposted by Rob Palmer
TC39 @tc39.es · 23/07/2026
ECMAScript Excitement 🎉 This week, at its 115th meeting, TC39 advanced these proposals: 3️⃣ Await dictionary 2️⃣.7️⃣ Thenable curtailment 2️⃣ Error code property 2️⃣ Fused multiply-add 1️⃣ Intl.DateTimeFormat alignment with other standards 1️⃣ Linear matching 1️⃣ Map.take
56817
Reposted by Rob Palmer
Artem Zakharchenko @kettanaito.com · 21/07/2026
TypeScript 7.0 is incredible. I didn't even know type checking/generation took that much time in my build. Now it's 3-4x faster. Highly recommend updating.
1664
Reposted by Rob Palmer
Jake Bailey @jakebailey.dev · 21/07/2026
Am I sick or procrastinating? You decide Anyway I made the Go compiler twice as fast at compiling the TS checker package go-review.googlesource.com/c/go/+/803462
go-review.googlesource.com
Gerrit Code Review
2573
Rob Palmer @robpalmer.bsky.social · 20/07/2026
An awesome role for folk who want to work on DevTools and high-performance software in London 🔥
0171