Composing the uncomposable: some techniques and ideas for radically improved composability in software
Traditional languages and tools are designed to compose precisely-matched, homogeneous artifacts, within an infrastructure designed for specific languages or small families thereof. Meanwhile, traditional practices build software by selecting underlying "target"
components and building on them. In this talk I'll present a medley of prior and in-progress work that rejects these approaches, with the goal of making feasible a far wider range of compositions (for a given programming effort). This includes those that are imprecisely-matched, cross-language or otherwise heterogeneous. I'll also discuss the possible gains of abandoning the practice of building on preexisting interfaces. (This will be an "in breadth" talk... if you like declarative languages, debuggers, dynamic languages, refactoring or information hiding, there should---time permitting---be something for