Overview
Explore the challenges and potential solutions for building multi-language software systems in this thought-provoking conference talk from Strange Loop. Delve into the complexities of using different programming languages for various components of a system, and learn why current toolchains often fall short in supporting seamless integration. Discover the concept of "linking types" as a proposed solution for enhancing language interoperability and maintaining safety across language boundaries. Examine real-world examples of refactoring challenges and how linking types can preserve correctness. Gain insights into the Mulberry Project and its approach to cross-language type errors. Consider the implications for both typed and untyped languages in multi-language development. Walk away with valuable takeaways on the future of language design and toolchain development for more efficient and secure multi-language software engineering.
Syllabus
Intro
Multi-Language Software is Hard!
Current State of PL Design
Reasoning about Refactoring
Is this Refactoring Correct?
PureLang with Linking Types Extension PureLang
Refactoring: Pure Inputs
Refactoring: Stateful Inputs
Minimal Annotation Burden
Type-Preserving Compilation
Cross-Language Type Errors
Preserving Correctness of Refactoring
Mulberry Project
What about Untyped Languages?
Takeaways
Taught by
Strange Loop Conference