korrents

← Topics

Do static types make software better?

Top voices on TypeScript: Anders Hejlsberg, David Heinemeier Hansson, Dan Luu, Tim Sweeney and 7 others.

They split on whether types prevent bugs, or mostly buy better tools, and on how strict they should be.

19 dated claims from 11 people · 4 views · most recent 14 Sept 2026

The views

What is a view?

Our reading of what a group of claims have in common, one level above a korrent: a korrent is our reading of what somebody said, a view is our reading of what several korrents share. The claims are printed under it, so the sentence can be checked against them.

Nobody is filed under a view — claims are. A person is named here because a dated claim of theirs sits under it, and somebody whose claims sit under two views appears under both.

  1. Types pay for themselves, mostly through the tools that can be built on them

    Guillermo RauchKelsey HightowerAlice RyhlAnders HejlsbergDillon Mulroy

  2. The evidence that types prevent bugs is thin, and dynamic languages ship fine

    David Heinemeier HanssonDan Luu

  3. The best types are the ones you can add gradually or let the compiler infer

    Anders HejlsbergJamie BrandonAllan Odgaard

  4. If you are going to have types, have the strictest kind

    Jamie BrandonTim SweeneyDillon Mulroy

A viewour reading

Types pay for themselves, mostly through the tools that can be built on them

6 claims filed here, newest first — each in the words of whoever said it.

Show all 6 claims

What makes Kubernetes powerful is that it gave infrastructure a type system, and types are what finally made automating infrastructure safe.

  1. Kelsey Hightower Self-taught software engineer The thing that makes Kubernetes powerful, there's a data model. We gave infrastructure a type system. So instead of imperative shell scripts, you finally had types. Kubernetes and retiring at the top with Kelsey Hightoweryoutube.com · 3 Jun 2026 · 1:21:08 into the videoAll korrents from this video
    The thing that makes Kubernetes powerful, there's a data model. We gave infrastructure a type system. So instead of imperative shell scripts, you finally had types.

    Watch from 1:21:08 plays here

    ↗Kubernetes and retiring at the top with Kelsey Hightoweryoutube.com

    3 Jun 2026 · video · 2h 52m · spoken · machine transcript

A language can only give you the feeling that compiling means working if it has a type system — that is where it all starts.

  1. Alice Ryhl Software engineer on Google's Android Rust team I think to have a language that feels this way you have to have a type system. That's where it all starts. Why Rust is different, with Alice Ryhlyoutube.com · 20 May 2026 · 0:05:48 into the videoAll korrents from this video
    I think to have a language that feels this way you have to have a type system. That's where it all starts.

    Watch from 0:05:48 plays here

    ↗Why Rust is different, with Alice Ryhlyoutube.com

    20 May 2026 · video · 1h 05m · spoken · machine transcript

You cannot build good tooling without a type system — decent tooling perhaps, but nothing that scales to a large team.

  1. Anders Hejlsberg Danish software engineer and Microsoft technical fellow we knew from experience that you cannot build good tooling without a type system. You can build decent tooling, but it's never going to scale. It's never going to scale to large teams cuz you can't describe your intents in in the code. TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com · 13 May 2026 · 0:36:58 into the videoAll korrents from this video
    we knew from experience that you cannot build good tooling without a type system. You can build decent tooling, but it's never going to scale. It's never going to scale to large teams cuz you can't describe your intents in in the code.

    Watch from 0:36:58 plays here

    ↗TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com

    13 May 2026 · video · 1h 16m · spoken · machine transcript

People adopted TypeScript for the tooling, not the types: an erasable type system is worth having because of the productivity the tooling built on it delivers.

  1. Anders Hejlsberg Danish software engineer and Microsoft technical fellow And the reason they came, I think, is absolutely because of the the better tooling. And I think we were totally right there that like adding a an erasable type system and then using that to enable great tooling is really where the pro where the programmer productivity boost is realized. TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com · 13 May 2026 · 0:41:24 into the videoAll korrents from this video
    And the reason they came, I think, is absolutely because of the the better tooling. And I think we were totally right there that like adding a an erasable type system and then using that to enable great tooling is really where the pro where the programmer productivity boost is realized.

    Watch from 0:41:24 plays here

    ↗TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com

    13 May 2026 · video · 1h 16m · spoken · machine transcript

A viewour reading

The evidence that types prevent bugs is thin, and dynamic languages ship fine

5 claims filed here, newest first — each in the words of whoever said it.

Calling static typing the only way to build reliable systems is idiotic in the face of the evidence, starting with Shopify serving a million requests a second on Rails.

  1. David Heinemeier Hansson Creator of Ruby on Rails, CTO of 37signals They're still stuck in, essentially, I like static typing. Therefore, static typing is the only way to create reliable correct systems, which is just such a mind blowing, to be blunt, idiotic thing to say in the face of evidence, mountains of evidence to the contrary. DHH: Future of Programming, AI, Ruby on Rails, Productivity & Parenting | Lex Fridman Podcast #474youtube.com · 12 Jul 2025 · 1:13:36 into the videoAll korrents from this video
    They're still stuck in, essentially, I like static typing. Therefore, static typing is the only way to create reliable correct systems, which is just such a mind blowing, to be blunt, idiotic thing to say in the face of evidence, mountains of evidence to the contrary.
Show all 5 claims

Ruby must never get static typing: dynamic duck typing is the essence of what makes Ruby Ruby.

  1. David Heinemeier Hansson · changed Creator of Ruby on Rails, CTO of 37signals It's the essence of what makes Ruby Ruby. This is why I don't fully understand when people call for Ruby to add static typing. 'Cause to me, it's the bedrock of what this is. DHH: Future of Programming, AI, Ruby on Rails, Productivity & Parenting | Lex Fridman Podcast #474youtube.com · 12 Jul 2025 · 1:07:04 into the videoAll korrents from this video
    It's the essence of what makes Ruby Ruby. This is why I don't fully understand when people call for Ruby to add static typing. 'Cause to me, it's the bedrock of what this is.

TypeScript's type annotations cost more in friction than they return in safety, and a front-end framework is better off written in plain JavaScript.

  1. David Heinemeier Hansson Creator of Ruby on Rails, CTO of 37signals TypeScript just gets in the way of that for me. Not just because it requires an explicit compile step, but because it pollutes the code with type gymnastics that add ever so little joy to my development experience, and quite frequently considerable grief. Turbo 8 is dropping TypeScriptworld.hey.com · 6 Sept 2023
    TypeScript just gets in the way of that for me. Not just because it requires an explicit compile step, but because it pollutes the code with type gymnastics that add ever so little joy to my development experience, and quite frequently considerable grief.

The empirical literature on static typing finds effects too small to matter, in the narrow settings it has managed to study.

  1. Dan Luu Programmer who has worked on hardware verification at Centaur The summary of the summary is that most studies find very small effects, if any. Literature review on the benefits of static typesdanluu.com · 7 Nov 2014All korrents from this piece
    The summary of the summary is that most studies find very small effects, if any.

He prefers languages with expressive type systems and has still never noticed them making him more productive or less bug-prone.

  1. Dan Luu Programmer who has worked on hardware verification at Centaur But while I like languages with expressive type systems, I haven't noticed that they make me more productive or less bug prone Literature review on the benefits of static typesdanluu.com · 7 Nov 2014All korrents from this piece
    But while I like languages with expressive type systems, I haven't noticed that they make me more productive or less bug prone

A viewour reading

The best types are the ones you can add gradually or let the compiler infer

4 claims filed here, newest first — each in the words of whoever said it.

Because its types are erased before the program runs, TypeScript can afford not to be sound: checking 99% beats the 0% JavaScript checked, and buys features a sound language cannot offer.

  1. Anders Hejlsberg Danish software engineer and Microsoft technical fellow So, if we're checking 99% instead of 100%, well, heck, that's better than the 0% that JavaScript checked, right? And it gives you like language features that no other languages can provide because they can't get to 100%. TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com · 13 May 2026 · 0:51:52 into the videoAll korrents from this video
    So, if we're checking 99% instead of 100%, well, heck, that's better than the 0% that JavaScript checked, right? And it gives you like language features that no other languages can provide because they can't get to 100%.

    Watch from 0:51:52 plays here

    ↗TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com

    13 May 2026 · video · 1h 16m · spoken · machine transcript

Show all 4 claims

What makes TypeScript unlike almost every other language is gradual typing: you can have types, but you do not have to.

  1. Anders Hejlsberg Danish software engineer and Microsoft technical fellow The thing that makes it interesting, I think, and and unlike pretty much any other programming language is the gradual typing. This This notion that you can have types, but you don't have to have types. TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com · 13 May 2026 · 0:50:19 into the videoAll korrents from this video
    The thing that makes it interesting, I think, and and unlike pretty much any other programming language is the gradual typing. This This notion that you can have types, but you don't have to have types.

    Watch from 0:50:19 plays here

    ↗TypeScript, C# and Turbo Pascal with Anders Hejlsbergyoutube.com

    13 May 2026 · video · 1h 16m · spoken · machine transcript

Layering a static type system atop a dynamic one, capable of proving the dynamic checks redundant, combines the flexibility of dynamic typing with the performance of static typing.

  1. Jamie Brandon Programmer based in Vancouver who writes… The dynamic type system provides flexibility and easy meta-programming, while the static type system removes the overhead in most of your code. Borrow-checking without type-checkingscattered-thoughts.net · 22 Apr 2026All korrents from this piece
    The dynamic type system provides flexibility and easy meta-programming, while the static type system removes the overhead in most of your code.

Static typing does not require manifest typing — type inference lets a language avoid that without becoming dynamically typed.

  1. Allan Odgaard Danish Mac developer; author of the TextMate text editor… Many advocate dynamic typing because they think static typing automatically require manifest typing. With the auto keyword and use of template functions, C++ is moving further and further away from that dreadful paradigm :) GCC 4.5 & C++0xsigpipe.macromates.com · 15 Apr 2010All korrents from this piece
    Many advocate dynamic typing because they think static typing automatically require manifest typing. With the auto keyword and use of template functions, C++ is moving further and further away from that dreadful paradigm :)

A viewour reading

If you are going to have types, have the strictest kind

3 claims filed here, newest first — each in the words of whoever said it.

Enforcing safe mutable value semantics (e.g. via borrow-checking) is far easier to do cheaply with a static type system than with a dynamic one.

  1. Jamie Brandon Programmer based in Vancouver who writes… Ensuring that moving, borrowing, and sharing don't break the illusion is surprisingly easy to do with a static type system, and surprisingly hard to do with a dynamic type system, or at least hard to do cheaply. Borrow-checking without type-checkingscattered-thoughts.net · 22 Apr 2026All korrents from this piece
    Ensuring that moving, borrowing, and sharing don't break the illusion is surprisingly easy to do with a static type system, and surprisingly hard to do with a dynamic type system, or at least hard to do cheaply.
Show all 3 claims

There is one right way to build a type system, the way that gives you mathematical proofs, and every other kind of type system is simply worse and should be rejected.

  1. Tim Sweeney Founder and CEO of Epic Games But there are other parts of programming languages that are not subjective but should be fundamental. And when you look at type systems, there is a way to do type systems that gives you mathematical proofs. And every other way of type systems that doesn't give you mathematical proofs is just worse and should ultimately be rejected. Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming | Lex Fridman Podcast #467youtube.com · 30 Apr 2025 · 3:11:18 into the videoAll korrents from this video
    But there are other parts of programming languages that are not subjective but should be fundamental. And when you look at type systems, there is a way to do type systems that gives you mathematical proofs. And every other way of type systems that doesn't give you mathematical proofs is just worse and should ultimately be rejected.

React and TypeScript developers are infantilized by the ecosystem's thought leaders; anything beyond a simple CRUD app will need generics, mapped types and memoization.

  1. Dillon Mulroy Principal engineer at Cloudflare as of 2026 One thing that drives me crazy about the React ecosystem, and more specifically "tech influencers" and "thought leaders" in the space, is the infantilization of the developers using and working in it. I’m tired of reading takes like TypeScript generics, mapped types, etc should only be needed and used by library authors for most use cases. Or today’s discourse; Don’t use `useCallback’, ‘useMemo’, and React.memo. If you’re building anything beyond a simple CRUD app or a an incredibly focused app with few features, you _will_ need these features. @dillon_mulroy on Xx.com · 6 Nov 2023
    One thing that drives me crazy about the React ecosystem, and more specifically "tech influencers" and "thought leaders" in the space, is the infantilization of the developers using and working in it. I’m tired of reading takes like TypeScript generics, mapped types, etc should only be needed and used by library authors for most use cases. Or today’s discourse; Don’t use `useCallback’, ‘useMemo’, and React.memo. If you’re building anything beyond a simple CRUD app or a an incredibly focused app with few features, you _will_ need these features.

Read, and under none of the views

On the topic, but saying something the views above do not cover.

Tests and type checkers are safety nets: they do not make a system simple, so they cannot touch the core problem of understanding it.

  1. Rich Hickey Creator of the Clojure programming language and of Datomic Right? They just do not touch the core of this problem. Right? They're safety nets, but they're nothing more than that. "Simple Made Easy" - Rich Hickey (2011)youtube.com · c. 2011 · 0:59:42 into the videoAll korrents from this video
    Right? They just do not touch the core of this problem. Right? They're safety nets, but they're nothing more than that.

    Watch from 0:59:42 plays here

    ↗"Simple Made Easy" - Rich Hickey (2011)youtube.com

    c. 2011 · video · 1h 01m · spoken · machine transcript

On this topic, not yet placed

Matched by wording, not yet read into a view. The archive grows on its own, so this is where new claims wait for somebody to read them.

The full chronology, with every quote: TypeScript as a timeline · person by person, side by side · all topics · Something wrong? Tell us