Empirical evaluation of straight-line asynchrony design trade-offs
Build an empirical body of data that supports reasoning about the trade-offs among straight-line asynchrony design choices, including the relative overhead and concurrency of semi-eager versus eager async function application, the bug-prevention effects of simultaneous versus bottom-up cancellation, the degree to which each semantics matches developer expectations, and the relationship between design decisions and programming errors.
References
An open challenge for the future is to build a body of empirical data that can support designers in reasoning about the trade-offs of different approaches. For example, how much overhead does \seager async function application incur versus \eager, and how much more concurrency does it gain? To what extent does \simultaneous cancellation prevent realistic bugs that would occur with a \bup cancellation strategy? Which of these semantics best matches developer expectations for the behavior of asynchronous code? Which decisions lead to more errors?