On Thu, Jul 28, 2016 at 10:21 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2016-07-28 12:56 GMT+02:00 Esteban Lorenzano <estebanlm@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.
It also self propagates, which this does not. Maybe its a dead virus like they put in vaccines?
What you think about renaming virus to mutation?
mutation := GHObjectMutation behaviour: GHGhostBehaviourStub new. victim := 0@0 corner: 3@4. mutation infect: victim.
I like that better. Way back when you first announced GHObjectVirus it jarred a nerve with me, but I restrained myself from commenting at the time. Though maybe(?) 'mutation" a little passive and GHObjectMutator might fit better (but its quite a small distinction). btw the term #infect: is quite loaded with negative connotations. Maybe overall its... mutator mutate: victim.
Is it makes any sense for you?
(grammar sensei says "Does that make any sense to you?")
You should understand that ObjectVirus is specific kind of ghost for real object interception.
Your use of that last term to describe this indicates GHObjectInterceptor might be a reasonable alternative. Though perhaps that sounds like its intercepting Objects when its intercepting Messages. So maybe GHMessageInterceptor(??) (and now it sounds like a sleek starship) cheers -ben
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.