This is a good point. I feel like I would want to make it possible for module C to extend the behavior of module B as seen from module A (as, from what I understand, mixins in objective c once could do?), so long as it didn’t change existing behavior and could be explained by tooling — but I think the latter part of that equation only works in totally-integrated VM-type environments like Smalltalk & doesn’t extend well to traditional text-based systems.

(It’d be nice to be able to do that kind of “why is this code doing this” query in general, and with the rise of JIT compilation this is becoming more viable and we start to be able to introspect on the internal behavior of our actual compilers from running code, but from a user interface perspective it’s hard to imagine how this would integrate into anything less than a smalltalk-style class browser — even an IDE would be a poor fit here.)

Resident hypertext crank. Author of Big and Small Computing: Trajectories for the Future of Software.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store