Creator of TypeScript: 10x Faster TypeScript, Why AI Won't Replace SWEs | Anders Hejlsberg
TypeScript's Native Port and AI-Assisted Engineering
Anders Hejlsberg on TypeScript's Go port, deterministic AI assistance, compiler feedback, and software responsibility
Ryan Peterman interviews Anders Hejlsberg about TypeScript’s compatibility-preserving port to Go, the role of shared-memory concurrency in its reported 10x speedup, and why faster compilers matter for coding-agent feedback loops. Hejlsberg recommends using AI to build deterministic transformation tools rather than trusting one-off answers, argues that typed languages benefit agents, and keeps responsibility with engineers who review what they ship. The performance and capability claims are first-party reports and practitioner judgments.
Ryan Peterman interviews Anders Hejlsberg, the lead architect of TypeScript and creator of Turbo Pascal and C#, about TypeScript's native compiler port and the changing role of software engineers. Hejlsberg connects compiler architecture to coding-agent practice: preserve compatibility, use AI to build deterministic tools where correctness matters, give agents fast semantic feedback, and keep people responsible for the software they ship.
Key Points Covered
- Port instead of rewriting when compatibility is the product constraint: The team chose to preserve the existing compiler's algorithms, semantics, diagnostics, and edge-case behavior rather than redesign it. Go supplied native compilation, garbage collection, closures, and shared-memory concurrency without requiring the data-model changes a Rust port would have imposed 07:05–13:52(opens in a new tab).
- Ask AI to write a repeatable translation tool: The port began with manually written scanner and parser prototypes, then used a syntactic TypeScript-to-Go translator plus manual refactoring and limited AI assistance. Starting today, Hejlsberg might instead ask AI to write that translator. Engineers would still need to validate it, but a program applies the same transformation on every run; they would have a smaller piece of software to inspect than a whole compiler translated directly by a model 14:55–19:06(opens in a new tab).
- Compatibility can outweigh the appeal of a clean rewrite: Hejlsberg calls rewrites risky for ecosystems because they change behavior and transfer migration costs to users. In this case, the existing codebase and algorithms were assets to preserve, not debt to discard 19:06–20:10(opens in a new tab).
- AI may reinforce established languages: Models have seen more JavaScript, TypeScript, and Python than new or niche languages. Hejlsberg argues that this training-data advantage strengthens incumbents, while TypeScript's annotations and compiler checks help agents catch mistakes before runtime 23:51–26:48(opens in a new tab).
- Choose runtimes from measured workload constraints: Native code matters for the compiler's compute-intensive work, but Hejlsberg cautions against generalizing that choice to every backend. Framework fit and orchestration overhead can matter more than native execution, so teams should measure before switching languages 26:48–29:53(opens in a new tab).
- Fast tools should understand the code, not just match text: Coding agents generate many edits and need repeated type checks, so faster checking shortens the feedback loop. Hejlsberg's example is renaming a
versionproperty: text search also finds unrelated objects with that name. A compiler-backed language service can distinguish which references belong to the property being changed 49:14–51:16(opens in a new tab). - Generated volume is not the same as novel, high-quality engineering: Hejlsberg expects AI to write a large share of common application code, but says the TypeScript team has not found it capable of producing their compiler's unfamiliar algorithms and architecture. This is the team's experience, not a general model evaluation 51:16–54:19(opens in a new tab).
- Engineers retain responsibility for agent output: Hejlsberg rejects the idea that developers can stop understanding code they vouch for. When software fails or harms a user, accountability remains with the people and organization that shipped it, not the model 54:19–55:13(opens in a new tab).
- For some programming roles, the junior tier may narrow and shift toward review: He argues that organizations still need a path from junior to senior engineer. Agents may reduce code typing and accelerate expectations, but developers must learn to supervise, review, and connect implementation to the business and system around it 55:13–58:20(opens in a new tab).
Full interview: https://www.youtube.com/watch?v=cywK3XYYJ2o(opens in a new tab)