May 7-10, 2017 Asilomar, California
Many developers who work on large, untyped code repositories notice that
they have to figure out the equivalent of method signatures when they work on old
code. This step costs time and is also error prone. To address this problem
in their own world, the two lead authors proposed a linguistic solution ten
years ago, specifically the creation of typed twin programming languages
for untyped languages so that developers could migrate scripts from the
untyped world to a typed one on an incremental basis. Their programmatic
paper also spelled out three guiding principles for this program:
idiomatics, soundness, and a well-sized unit of migration.
This paper revisits the idea of migratory type systems and the design
guidelines. It explains how they have been used in the Typed Racket
project. Finally, the paper assesses the state of affairs, highlighting
successes and failures.