On Thursday, November 21, 2002, at 12:24 AM, Dave Storrs wrote:
If I'm understanding them correctly, another way to think of runtime properties is "dynamic inheritance", or more specifically "instance-based inheritance". When you say:On Thu, Nov 21, 2002 at 01:29:32AM -0500, Tanton Gibbs wrote:Properties have bothered me, but for a different reason. It appears that everyone's answer to everything is "make it a property!" Properties are just strange to comprehend...they are like hidden attributes that are squirreled away until you least expect >> them...then
I would say that properties are very powerful and, like most powerful things, could easily be abused.
$v but foo(5);
You're saying that instance/value $v now inherits the behaviors of foo(5), in addition to it's normal behavior. Well, sortof.
So while they're essential for certain things, I expect they might be *much* more expensive (runtime) than either method calls or normal, "static" class inheritance. You're taking the particular value/instance and adding another layer of behavior to it -- behavior that is only calculable at runtime. Ouch!
So yeah, I think they should be avoided except when necessary -- to make an object do something that is wasn't originally designed to do, but not as a syntax for a core feature. I would hope most of the core uses them very sparingly.
MikeL