Larry Wall wrote:
Indeed, that's part of why Perl 6 eventually threw out properties entirely, on the supposition that properties are simply attributes that are mixed in at run-time rather than compiled in.
From an HLL perspective, I agree. But there's always more than one way to satisfy an HLL abstraction.
From the Parrot perspective, attributes can only be added to classes, while properties can be added to instantiated objects without modifying the class (essentially creating a very lightweight singleton). Properties can also be added to classes without appearing in the instantiated objects of that class. It's a useful distinction.
I can see an argument for having an interface that can retrieve and store both attributes and properties, but that's orthogonal to the question of where the two kinds of data members are stored in the object/class structure.
Allison