TypeScript
Our Take
April 21, 2025

Go Over C#: The TypeScript Team’s Surprising but Practical Choice

When the TypeScript team announced their decision to rewrite the TypeScript compiler in Go, the community had… well, a lot to say. Many devs were critical of this decision, especially given that

it’s Microsoft, why wouldn’t they use C#?” “Why Go, which is written and maintained by its competition, Google?

The reasoning behind this decision really boils down to a couple of things, but I think chief among them is the semantic similarity that Go provides when looking at the existing codebase coupled with the raw performance that Go provides. This is really underscored by the creator of both C# and TypeScript, Anders Hejlsberg:

Our decision to port to Go underscores our commitment to pragmatic engineering choices.

Understanding the Decision

This isn’t a full rewrite – it’s effectively a port. Go’s language semantics align closely with TypeScript’s patterns and structures. Both languages heavily utilize top-level functions, interfaces without explicit implementation declarations, and structural typing. This similarity streamlines the conversion process from TypeScript to Go, making it as much a business decision as a technical one.

Contrast this with C#, a powerful yet distinctly object-oriented and class-centric language. Migrating the compiler codebase to C# would inevitably involve extensive restructuring simply based on the structural semantics of C# - it is, after all, a deeply object oriented language. If a rewrite had been on the table, C# likely would have been a much bigger contender. This sends a clear message – they’re clearly happy with the code in the TypeScript compiler, even if they’re not happy with the performance.

Obviously, fanboi .NET devs were unhappy with the decision, saying that it sends a message from Microsoft that C# isn’t a serious language. That couldn’t be further from the truth. In reality, the argument isn't about C#'s inadequacies - it's about choosing the right tool for the job. The TypeScript team’s decision wasn’t a slight against C#, but rather a pragmatic acknowledgment of Go's specific advantages in this scenario.

Consider the criticism on the other side of this decision – if they had said

we’re going to rewrite it in C#” they’d likely be accused of “C#ing all the things”

Looking for Midwest-Based Developers for Your Business?

Open up new opportunities, grow revenue and improve user experience with Aviron Software. Based in St. Louis with USA programmers & QA specialists, Aviron can help your business whether on web, mobile apps or desktop software development. Get in touch via hello@avironsoftware.com or contact us.

Do you prefer to text? Send a text over to (314) 541-3446 to setup a time to discuss growing your business through software.