The pragmatic roots of TypeScript’s dominance
When Anders Hejlsberg started building TypeScript in 2012, the goal was not to displace JavaScript but to make it manageable at scale. JavaScript had become the language of the web, yet offered little support for the millions of lines of loosely typed code that teams were shipping. TypeScript was the fix: a typed superset designed to bring tooling and refactorability to an otherwise permissive ecosystem.
That pragmatic bet has paid off in ways even its creator didn’t anticipate. In 2025, TypeScript became the most-used language on GitHub, surpassing both JavaScript and Python for the first time, according to the Octoverse report. More than a million developers contributed in TypeScript this year alone—a 66% year-over-year jump.
“I remember thinking maybe we’ll get 25% of the JavaScript community to take an interest—that would be success,” Hejlsberg says. “But where we are now? I’m floored.”
The language now scaffolds out of the box in nearly every modern frontend framework—React, Next.js, Angular, SvelteKit—offering safer codebases and better autocomplete. “The magic was making TypeScript feel like JavaScript, but with superpowers,” he adds.
A compiler rewrite for performance
TypeScript was famously self-hosted from the start—written in TypeScript itself. That kept it portable and hackable, but performance eventually became a bottleneck. The team decided to rewrite the compiler in Go, a choice that delivered a 10x improvement.
“As much as it pained us to give up on self-hosting, we knew we couldn’t squeeze any more performance out of it,” Hejlsberg says. “We experimented with C#, with others, and finally chose Go. The performance gain was 10X. Half from being native, half from shared-memory concurrency. You can’t ignore 10X.”
Despite the rewrite, the new native compiler remains behaviorally identical to its predecessor. “We have a native compiler that’s a carbon copy of the old one down to the quirks,” he explains. “The community doesn’t have to throw anything away.”
Open source as evolutionary history
Hejlsberg sees open source as an ecosystem that mirrors natural selection—a living record of how software evolves. This year’s Octoverse data supports that view: developers pushed nearly 1 billion commits in 2025, a 25% increase year over year, with 1.12 billion of those going to public and open source repositories.
TypeScript’s own repository, with twelve years of issues, pull requests, and design notes, is a case in point. “We have 12 years of history captured on GitHub,” Hejlsberg says. “It’s all searchable. It’s evolution you can grep.”
The AI advantage of typed languages
Octoverse 2025 shows that AI is reshaping not just code generation but language preferences. Developers are gravitating toward typed languages that make AI-assisted coding more reliable. Hejlsberg attributes this to a simple dynamic: AI models are trained on vast amounts of existing code, which gives them fluency in dominant languages like TypeScript, JavaScript, and Python—while putting newer languages at a disadvantage.
“AI’s ability to write code in a language is proportional to how much of that language it’s seen. It’s a big regurgitator, with some extrapolation,” he says.
But fluency alone isn’t enough. Types add a layer of determinism that helps keep AI outputs in check. “If you ask AI to translate half a million lines of code, it might hallucinate,” Hejlsberg notes. “But if you ask it to generate a program that does that translation deterministically, you get a reliable result. That’s the kind of problem types were made for.”
From IDEs to agents
Large language models are also changing what developer tools should look like. IDEs were built for human interaction, but agents don’t operate the same way.
“AI started out as the assistant. Now it’s doing the work, and you’re supervising,” Hejlsberg says. “It doesn’t need an IDE the way we do. It needs the services. That’s why all this Model Context Protocol work is exciting.”
Typed languages give agents the structure needed for safe refactoring and semantic queries. “The goal,” he adds, “is to box in AI workflows with just enough determinism that they stay useful without going off the rails.”
A language built around clarity
Looking back on a career that spans Turbo Pascal, C#, and TypeScript, Hejlsberg sees consistency in his approach: building languages that make complex software easier to reason about.
“There’s nothing more satisfying than working on something that makes a difference,” he says. “TypeScript keeps changing, but it always comes back to the same thing: helping developers express intent clearly.”
That clarity is likely part of why more than one new developer joined GitHub every second in 2025, with a growing share choosing TypeScript as their starting point. What began as a pragmatic fix for JavaScript’s scaling problems has become the foundation for how developers—and AI—write code together.



