Denis,
I recommend that you read carefully the paper that Steven sent (the one
about message passing, that Stef wrote many years ago :)). If you read
carefully, you'll see that what you call object virus is already there,
and falls into the category "anonymous classes".
Maybe you can get some ideas for names in there. Some ideas that come to
my mind: - Your virus *intercepts* messages, it does .
- Your virus actually allows you to change the *meta-object* of an
object (and thus how it receives messages).
- Moreover you can handle several meta-levels, so it's not a single
meta-object.
-------- Original Message --------
2016-07-28 12:56 GMT+02:00 Esteban Lorenzano <esteba...@gmail.com
<mailto:esteba...@gmail.com>>:
I do not like either the “virus” name.
not just because is negative in a subjective way… also it hides
what it does inside a fantasy name, and that IMO is negative to
self discovery of the system.
I mean… a framework can have a fantasy name… but a class? A method
name? (#infect:… come on!)
I know is “cool", but if I read the code below, I have NO CLUE of
what is going to happen, and that’s not good.
virus := GHObjectVirus behaviour: GHGhostBehaviourStub new.
victim := 0@0 corner: 3@4.
virus infect: victim.
As any framework you need to know something about it. And description
here is quite simple: virus is a guy who changes behaviour of infected
objects.
What you think about renaming virus to mutation?
mutation := GHObjectMutation behaviour: GHGhostBehaviourStub new.
victim := 0@0 corner: 3@4.
mutation infect: victim.
Is it makes any sense for you?
You should understand that ObjectVirus is specific kind of ghost for
real object interception. It is not general proxy because it make
concrete decisions about class side behaviour of infected instances
and about their meta level. Also there are other "real object ghosts"
(I remember Guille is implementing Membrane).
I try to say that it is quite difficult to call different kind of
ghosts without distinguishing them by some kind of metaphor. It is
easy to be lost inside many "general" proxy names.