It does indeed help with the liveness a great deal, though it takes a bit of a different form than what I described here for building a game. I'll probably write the second post in the next couple days that goes over what that looks like.
Based on my cursory understanding of how dynamic mixins would work, it seems like they are similar to components - both are just ways of composing state into an object. I think the one major distinction is that components are not meant to really bring logic with them while mixins in most mainstream languages provide more than just state. That difference is implementation specific though.
For what it's worth, the question I started with was how do you create a runtime modifiable system that also allows for potentially infinite customization? What I came up with is behavior oriented, though I think different than what you're describing in your paper.
EDIT: Thinking more about it, another difference is that everything I've shown is just data, there are no special language constructs at work and I would venture a guess that gives you more freedom than a mixin system does. The example components I give all expand out into nothing more than a map full of vectors containing maps.
I think its quite close to behavior oriented programming, at least as defined by Brooks. Keep in mind his goal is robotics, which is very similar to games (or to say, a game is just a robotics simulation!).
I'm not really interested in the distinction between language-based vs. library-based extensibility: they are quite the same thing even if the syntax is different (and yes, language-supported extensions are definitely less flexible!). Also see adapter extension in Eclipse: every object supports the "HasAdapter, GetAdapter" interface, which allows for lots of dynamic extensibility.
Also, when you say "data," do you mean state? E.g., adding physics state to an object undergoing physics simulation. Any chance for data in the form of a lambda (basically, that would be virtual dispatch)?
Based on my cursory understanding of how dynamic mixins would work, it seems like they are similar to components - both are just ways of composing state into an object. I think the one major distinction is that components are not meant to really bring logic with them while mixins in most mainstream languages provide more than just state. That difference is implementation specific though.
For what it's worth, the question I started with was how do you create a runtime modifiable system that also allows for potentially infinite customization? What I came up with is behavior oriented, though I think different than what you're describing in your paper.
EDIT: Thinking more about it, another difference is that everything I've shown is just data, there are no special language constructs at work and I would venture a guess that gives you more freedom than a mixin system does. The example components I give all expand out into nothing more than a map full of vectors containing maps.