Whither Gradual Typing?

Thinking out loud prompted by recent comments from Richard Feldman and Jamie Brandon.

This item is a work in progress. It is subject to change radically at any time—up to and including being deleted entirely if I change my mind about it! Because it is a draft, it is not included in the site’s feeds; if you want to watch its progress, you will need to do that very old thing and bookmark this page and return to it over time until it is published.

Given its preliminary, work-in-progress status, I would appreciate it very much if you do not share this to social media, Hacker News, etc.—call it part of the contract for “working with the garage door open”. Thanks!

Assumed audience: Software developers comfortable thinking about type systems—tradeoffs among different kinds of type systems (and thus at least a basic understanding of the existence of different kinds of type systems!), what gradual typing is and how it has been applied to JavaScript, Python, Ruby, Lisp, etc.

Stub, with the following bits for context:

  • Jamie Brandon’s most recent log-type post linked to the Elixir papers on gradual typing

  • I have been doing TypeScript for 7 years

  • Richard Feldman commented in a recent talk (TODO: find it) that he does not think

  • I tend to agree with Feldman, I think?