Skip to content

Instantly share code, notes, and snippets.

@raiph
raiph / .md
Last active Aug 7, 2020
2009/2013 papers: The Power of Interoperability: Why Objects Are Inevitable
View .md

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?

@raiph
raiph / .md
Last active Jan 29, 2022
`quasi`
View .md

"a quasi is like a little templating language for the raku code"

Please consider choosing a word other than quasi. Using quasi introduces conceptual complexity that is unnecessary and, imo, harmful. Given that what it does is a "Transform of a syntax template" with the transform being "To AST", please consider one or more of ToAST, toAST, and/or toast, and perhaps encourage the lie-to-children simplicity of "template of AST".

@raiph
raiph / .md
Created Apr 30, 2022
Longevity diet
View .md