David Nolen’s video provide great insights into problems in software that have nothing to do with types. Typescript’s popularity comes from the lack of tooling in the JS ecosystem rather than anything remarkable about the language itself.
Types in the language is the equivalent pouring concrete over a piece of code. It’s good in a lot of cases, especially in teams when an interface needs to be communicated for everyone to be on the same page. However, for exploratory work where the shape of a codebase may change significantly, you’re better off doing a complete rewrite.
Inherent weaknesses of Types Systems are:
- Not being Relational models (SQL). Type systems have a lot of issues with graphs and partial maps.
- Not being able to handle Heterogeneous lists and maps.
- Getting around the concept of null by inventing more concepts of null (Maybe, Option)