## TL;DR

Microsoft’s move to rewrite TypeScript in **Go** kicked off a broader conversation: **in the AI era, readability, ecosystem tooling, and the shape of your workload matter as much as raw performance**. Cameron leans TypeScript for web and Python/C++ for AI-heavy backends; Jens explains why Go’s simplicity can make AI-generated code easier to review and maintain.

## A surprise: TypeScript in Go (not Rust)

Jens raises Microsoft’s plan to [rewrite TypeScript](https://devblogs.microsoft.com/typescript/typescript-native-port/) in [Go](https://go.dev/) and asks for Cameron’s take. Cameron didn’t see Go coming—but is “pretty shocked and honestly excited,” noting Go’s blend of strengths and that it’s capable of more than we usually ask of it.

> I’m actually pretty shocked and excited they decided to go the route of Go… it feels like the best of C++, Java, Python and TypeScript all in one.

## Go vs Rust when you’re moving a compiler

Jens contrasts Go’s “almost no magic” with Rust’s borrow-checker complexity when dealing with parsers/ASTs. Function-by-function, TypeScript can map more directly to Go, whereas [Rust](https://rust-lang.org/) introduces lifetimes and ownership work that complicates a straight rewrite.

He adds that GC tradeoffs are workload-dependent: servers can see GC-related latency spikes, but compilers can finish work and free memory, making GC far less of a concern.

## Picking languages for AI work (today)

Cameron’s rule of thumb: **TypeScript for web**, **[Python](https://www.python.org/)/ [C++](https://cplusplus.com/) for AI-heavy backend**, largely because the AI tooling ecosystem favors those back-end languages right now. He likes Go, but some AI features are still missing or immature in Go’s ecosystem.

> On the back end… I’m probably going to go with Python or C++. The reason is tools and what you have access to.

## How AI changes the workflow

Jens and Cameron compare **agent mode** to earlier autocomplete-style tools. Agents can edit across many files, which is powerful but risky without guardrails. One practical loop Jens recommends for web: let the AI write TypeScript, **run `tsc`**, and feed compiler errors back to the AI for correction.

Cameron finds agents strong for scaffolding, SQL migrations, comments, tests, and models—but warns they can mangle prompts if you aren’t careful with file access.

### Read Cameron’s writing

- [Rethinking API Access in the Age of AI Agents](/content/blog/harm_limiting_for_api_access/index.html)
- [Why AI Needs a Common Language](/content/blog/ai-needs-common-language/index.html)

## Frequently Asked Questions

### What did they say about Microsoft rewriting TypeScript in Go?

Cameron was surprised but excited; Jens noted Go’s ‘almost no magic’ and closer mapping from TypeScript, while Rust’s borrow checker adds complexity for compilers and AST transforms.

### Which languages do they reach for with AI?

For web: TypeScript. For AI-heavy backend: Python or C++ due to ecosystem/tooling. Go stays attractive for readability and AI generation patterns.

### Is Go’s garbage collection a problem?

It depends on workload. Jens explains GC can cause latency spikes in servers, but for compilers you can do the work and free memory, so GC may not be a concern.
