Are there any resources for learning about extensi...
# thinking-together
w
Are there any resources for learning about extensible systems? Looking for examples of systems, architecture designs, so on. Thinking of systems like: Emacs, Racket, entity component systems, event systems, browser extensions, dependency injection.
c
What level of abstraction? Like the theoretical level / design principles?
w
Any level. From concrete examples to broad principles.
c
There are a lot of interesting articles on "moddable" game development. At least, there are more extensible systems used in game dev than enterprise typically. 😅
👍 1
w
Yeah, I’ve been learning about ECS through Amethyst (https://amethyst.rs/) which has rekindled my interest in designing for extensibility. Been thinking a lot about how modern type systems enable these very dynamic/plugin-like patterns in a type-safe way.
❤️ 1
m
Perhaps you want to read about module systems?
c
I'd also check out Glamorous Toolkit for inspiration which @Tudor Girba brought to my attention. It's a small talk environment that is highly "moldable"
w
This is the only course I could find: https://felleisen.org/matthias/4620-s18/index.html
🔍 1
@Michael Coblenz agreed! Although I think module systems usually focus more on abstraction/interfaces and restricting information, rather than promoting an open/extensible world.
(At least, particularly as it’s studied in PLT.)
m
I would flip it around: the specifications that modules give you provide a mechanism for safe extension.
If I give you a component that doesn’t conform to any specification that you know of, there’s not much you can safely do with it.
In Java and similar, interfaces serve this role.
t
Thanks for the ping @Cole. @Will, indeed you can take a look at gtoolkit.com. We made it specifically to be programmable and modifiable by the programmer during using the environment itself.
👍 3
w
@Tudor Girba is there a canonical place/paper to read about the architecture/design principles?
j
I would like https://malleable.systems/catalog/ to contain such resources and systems, but at the moment coverage of those areas is limited. Feel free to pass along systems / resources people know of in these areas. 😄
❤️ 2
t
@Will I missed your message. We are still documenting GT. Our current focus is to make the environment itself be the description. To this end, we have documents and interactive slideshows inside the environment.
😍 1
c
@Will I think I've told you about my work on typy but it sounds up your alley so I'll plug it again 🙂
👍 1