~/talk

Porting the TypeScript Compiler to Go for a 10x Speedup V2

Talkat GopherCon 2025 · 2025-08-26..08-28· [typescript, go]
links:none on file
slides:none on file

Ports 150,000+ lines of TypeScript and 90,000 tests into Go, using a TS-to-Go tool to convert code, a node arena pool to cut allocations (parsing shows ~96% fewer allocations and a 20% boost), and multiple concurrent checkers so parsing is 3–4x faster single-threaded and over 10x with all cores. VS Code compile drops from ~80s to ~7s in early runs; Slack build goes from ~6min to ~40s and Figma sees ~5x speedup. Race detector and an immutable snapshot model eliminate concurrency bugs.

AI-written summary · about

  1. 0:00Introduction to TypeScript
  2. 1:04TypeScript's Scale and Impact
  3. 2:29Challenges of JavaScript
  4. 4:46The Need for a New Compiler
  5. 7:24Language Choice and Requirements
  6. 8:55Porting Process and Tools
  7. 11:50Initial Results and Team Growth
  8. 13:24Community Reaction
  9. 14:56Testing Infrastructure
  10. 16:53Data Structures in Go
  11. 20:59Performance Optimization Techniques
  12. 22:38Handling String Encoding
  13. 24:13Compiler Concurrency Design
  14. 27:48Addressing Concurrency Bugs
  15. 29:24Language Server Improvements
  16. 31:26Go-Specific Challenges
  17. 33:16Performance Gotchas and Fixes
  18. 35:50Features Left Behind
  19. 36:30Current Status and Impact
  20. 37:40Future Work and Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.