Skip to content

Instantly share code, notes, and snippets.

@raiph
Last active Aug 7, 2020
Embed
What would you like to do?
2009/2013 papers: The Power of Interoperability: Why Objects Are Inevitable

https://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf

https://www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf

Let us first consider the theory of how modular extension facilitates software evolution. The need for a software system to support new, unanticipated implementations of an abstraction was discussed in Parnas’s seminal paper on the criteria to be used in decomposing systems into modules. Parnas’s argument has become a pillar of software design: nearly all software must change over time, so a software system should be decomposed in a way that hides (i.e. isolates) decisions that are likely to change. The implication is that when change comes, it can be accommodated by providin a new implementation of the abstraction captured by the module’s interface. So extension is important for facilitating software evolution. However, is the interoperability of extensions necessary in practice, beyond examples such as widgets?

What if that notion is applied to a PL -- or, more to the point, a metalanguage?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment