Loading...
Loading...

TypeScript is #1 on GitHub. 72% of job postings require it. DHH tried to kill it. Here's why the 'TS vs JS' debate is finally dead — and what replaced it.
For years, the TypeScript vs JavaScript debate was the ultimate developer flame war. You had the TS zealots who'd type-check their grocery lists. You had the JS purists who treated any as a lifestyle. And then DHH showed up with a flamethrower.
In 2023, the Ruby on Rails creator publicly ripped TypeScript out of Turbo and said types were unnecessary overhead. The internet lost its mind. Hot takes flew. Careers were reconsidered.
Now it's 2026, and I have news: both sides lost. Let me explain. 😏
| Metric | TypeScript | JavaScript |
|---|---|---|
| GitHub #1 language | ✅ Yes (since 2024) | ❌ Dethroned |
| Job postings requiring it | 72% of frontend roles | 28% JS-only |
| npm packages with types | 89% (built-in or DefinitelyTyped) | — |
| Stack Overflow "most loved" | Still top 5 | Dropped to #12 |
| DHH still using it | ❌ Nope | ✅ He won his war |
| Average bundle size impact | 0 (compiled away) | 0 |
| Learning curve complaints | Still high 😅 | "Just works" |
TypeScript won the popularity contest. But the experience of using TypeScript? That's more complicated.
Every major framework ships with TypeScript support out of the box. Next.js, Remix, SvelteKit, Nuxt, Angular — they all assume you're using TS. Starting a new project in plain JS in 2026 feels like writing a React app with class components. Technically possible. Socially questionable.
Early TypeScript was painful. tsconfig.json was a nightmare. Generic error messages were novels. But in 2026, with TypeScript 5.5+, the developer experience is genuinely smooth:
72% of frontend job postings now list TypeScript. Not as a "nice to have" — as a requirement. If you're job hunting and your portfolio is all .js files, you're leaving opportunities on the table.
When DHH removed TypeScript from Turbo, something interesting happened. Other projects started questioning whether they actually needed types. Svelte famously switched from TypeScript to JSDoc annotations for their internal codebase. The message: types are useful, but TypeScript isn't the only way to get them.
You've seen those TypeScript utility types that look like this:
type DeepPartial<T> = T extends object ? {
[P in keyof T]?: DeepPartial<T[P]>;
} : T;Now imagine 15 of those nested together in a production codebase. I've seen TypeScript files where the type definitions are longer than the actual logic. That's not developer productivity. That's type therapy.
any Escape HatchHere's the dirty secret: a significant portion of TypeScript codebases are riddled with any. Teams adopt TS for the resume line, then cast everything to any when the types get hard. You end up with the worst of both worlds — the ceremony of TypeScript with the safety of JavaScript.
The real winner in 2026 isn't TypeScript OR JavaScript. It's this approach:
| Practice | What Smart Teams Do |
|---|---|
| New projects | TypeScript with strict mode, always |
| Type complexity | Simple interfaces > clever generics |
| Library authoring | JSDoc + type declarations (Svelte model) |
| Legacy codebases | Gradual migration, no big-bang rewrites |
| `any` usage | Banned in CI, period |
| Type-only files | Max 50 lines, then you're overengineering |
The teams shipping the best code in 2026 aren't TypeScript fundamentalists or JavaScript rebels. They're pragmatists who use types where they add value and don't write a PhD thesis in generics for a todo app.
The TC39 proposal for type annotations as comments in native JavaScript is gaining traction. Imagine writing typed code that runs natively in the browser without a compile step. No tsconfig.json. No build pipeline for types. Just JavaScript with optional type syntax that tools can read but the runtime ignores.
If this lands, the TypeScript vs JavaScript war doesn't end with a winner. It ends with a merger. 🤝
TypeScript won the market but created a culture of over-engineering. JavaScript lost the popularity war but influenced TypeScript to simplify. The actual winner is pragmatic typing — use types where they matter, skip the gymnastics, and ship software.
Both sides lost the war. The users won. And honestly? That's the best outcome. 🚀
Every year someone declares WordPress dead. Every year it still powers 43% of the web. Let's settle this with data, not hot takes.
Implementation roles dropped 17%. AI writes the boilerplate now. But 28.7M developers globally still need to come from somewhere. Here's what the new junior dev looks like.
The React 19 compiler auto-memoizes everything, killing useMemo and useCallback. But most tutorials still teach the old patterns. Here's what actually changed.