Static type checking is the process of detecting nonsensical operations based on their domains at compile time. While its benefits no longer need to be argued, static typing comes with expressiveness limitations that can only be lifted at the expense of complexity. This problem is particularly antithetical to generic programming, where algorithms and data structures are designed in the most general setting possible. In response, some systems have adopted a form of static duck typing: generic definitions are written against assumed interfaces that are only type checked with concrete types at their ultimate use sites.
This paper claims that such an approach, which we refer to as \emph{use site checking}, is harmful to the user experience. We study four main problems caused by use site checking and show how they relate to similar well-known issues in dynamically typed languages. We then discuss how statically typed languages should address these shortcomings.
Thu 24 OctDisplayed time zone: Pacific Time (US & Canada) change
13:40 - 15:20 | Onward! EssaysOnward! Essays at Pacific Chair(s): Marcel Taeumel University of Potsdam; Hasso Plattner Institute | ||
13:40 40mTalk | Use Site Checking Considered Harmful Onward! Essays DOI | ||
14:30 40mTalk | (Programs), Proofs and Refutations (and Tests and Mutants)Remote Onward! Essays Alex Groce Northern Arizona University DOI |