Today’s issue: Freaky EcmaScript engines, one-shotting copyright infringement, and avoiding (or learning to embrace) garbage code.
Welcome to #375.
If it is to be said, so it be, so it is.
Porting your entire project to a faster, cooler, more native language is usually the swan song of zombie startups who raised way too much money in 2021 – not the strategy for one of the biggest and most stable projects in the web ecosystem.
But if I learned anything during my time as a competitive POG player, it’s that winners win – and Anders Hejlsberg, the lead architect of TypeScript, is a winner.
Earlier this week King Hejlsberg decreed that TypeScript is getting 10x faster, and it’s all thanks to everyone’s favorite programming language – Rust.
Oh wait, no. Go. They chose Go.
Here’s how we got here:
JavaScript is a “little b*tch” – OK, Anders didn’t explicitly say that, but he all but implied it when he rattled off a list of things that JavaScript isn’t very good at – JIT startup costs, no shared memory concurrency, no native multithreading, and no support for other stuff I won’t pretend to understand.
The TypeScript compiler is built in TypeScript – And since TypeScript is a superset of JavaScript, through the transitive property, it’s kind of like the compiler is a “little b*tch” too.
The solution? Port the TypeScript compiler (TSC) to a language more fit for a compiler, which after much experimentation, turned out to be Go.
As Anders explained, it wasn’t that the other options (C++, Rust, etc.) were bad, it’s that Go was “most suitable for the particular workload we’re trying to do”.
Specifically, Go was the lowest level language that still supported things like optimized native code support on all platforms, control over data layout, cyclic data structures, automatic memory management, and great access to concurrency.
Bottom Line: TypeScript will soon be 10x faster and winners keep winning.
![]() ![]() ![]() ![]() |
Waiting 2 hours to deploy because of my team's janky test suite
Is QA a bottleneck that’s slowing down your releases and slowly killing your team’s joy? If so, you need to check out QA Wolf.
Their AI-native service gets engineering teams to 80% automated e2e test coverage across web and mobile apps, helping them ship 5x faster on average.
G2 rated QA Wolf as the #1 Easiest-to-Use Software Testing Tool, because they take testing completely off your plate, and get you:
Unlimited parallel test runs for mobile (iOS + Android) and web apps
24-hour maintenance and on-demand test creation
Human-verified bug reports sent directly to your team with zero flakes
No more manual E2E testing. No more slow QA cycles. No more bugs reaching production.
Schedule a demo to learn more.
If you want to go deeper on TypeScript’s jump to native code, the Syntax Pod just interviewed Anders Hejlsberg and Daniel Rosenwasser – aka the John Stockton and Karl Malone of TypeScript. (If you’re not a big basketball fan, just know that those two players led the Utah Jazz to multiple NBA championships in the ’90s).
Google launched Gemma 3, “the most capable model you can run on a single CPU or TPU.” The existence of a Gemma model implies the existence of Mark S and Helly R models.
Developers vs. Managers is a live fireside chat that GitKraken is hosting to see who really has the best ideas for improving developer experience and productivity. I’m 90% sure there won’t be a live cage match involved, but you never know unless you watch. [sponsored]
Embeddings (and how to create them) are perhaps the most interesting idea behind LLMs. In this video, Santiago will help you understand them from scratch.
Aiden Bai just completed another side quest by launching same.dev, which can “one-shot” clone any website.
Augment created the first AI coding assistant for large codebases. It helps you master your team’s most complex repos, it understands your team’s best practices, and it’s fully compatible with your existing IDE and other tools (VSCode, JetBrains, Vim, GitHub, etc). [sponsored]
Daishi Kato wrote about how his state management library, Jotai conceptually functions like JavaScript’s WeakMap API. I also conceptually function like JavaScript’s WeakMap API in that I’m misunderstood and all my closest relationships end up in the garbage.
Speaking of garbage, Nick wrote about how to avoid writing garbage code when using Cursor. Personally I’ve gone with a different strategy.
The Web Almanac just dropped their chapter on JavaScript. It’s perfect for my family members who’ve read Bytes for years and still have no idea what I’m talking about.
If you’re into freaky stuff (writing your own ECMAScript engine or an interpreter/compiler), How ECMAScript Engines Optimize Your Variables may give you some fun ideas.