> Err. There are only two things: compile-time variable properties and
> run-time value properties. Attributes are a Perl 5 construct that we're
> renaming because the name conflicts with the OO term for object data.
So,
$a is true
and
$a.true = 1
are synonyms, right?
if not, then there are three things: compile-time variable properties,
run-time variable properties, and run-time value properties, no?
if so, then wouldn't it be safer to put properties inside a special object
associated with each object (the 'traits' object) so there would be little
namespace collision?
> Of the two things that do remain, there is no overlap in functionality.
> Variable properties modify variables at compile-time, value properties
> annotate values at run-time.
>
> I have suggested to Larry that variable properties be renamed 'traits'
> and given a slightly different syntax to completely distinguish the two
> concepts, but until he blesses or vetos the idea, I don't intend to
> publicize it.
ok... then I guess my one remaining question is... why have two? Aside from
optimization, why do we need compile time properties/traits at all? What can
you do with a compile time trait that you can't do with a run-time trait
(which, albeit, may have compile-time syntax checking).
I'll defer the answering of this question to the time when larry blesses or
vetos your syntax idea..
Ed