TypeScriptThe Language That Ate the World While Nobody Was Looking
A sober look at the language that became infrastructure
There is a certain kind of hubris that comes from being the default choice. TypeScript has it in spades.
This week, the TIOBE index confirmed what anyone with eyes already knew: TypeScript is now the third most popular programming language on earth, behind only Python and C. It powers backends, frontends, mobile apps, CLI tools, build systems, and — in a development that should concern everyone — critical infrastructure.
The language that started as "JavaScript but with types" has become the lingua franca of modern software development. And while that's mostly good news, it comes with a set of risks that the community has been studiously ignoring.
The core problem is this: TypeScript's type system is Turing-complete. This means that type-checking itself can be an arbitrarily complex computation. In practice, this leads to build times that scale nonlinearly with codebase size, type errors that require a PhD to decode, and a culture of "type gymnastics" that prizes cleverness over clarity.
I've reviewed seven major open-source projects this month. In every single one, I found type definitions more complex than the business logic they were supposed to describe. We've created a meta-language on top of a language on top of a runtime, and we're proud of it.
None of this means TypeScript is bad. It's genuinely excellent for 90% of use…