I thought, Behaviors define the "behavior" of objects, therefore:

Integer is a behavior, because it defines the behavior of "integer objects"
Integer class is a behavior because it defines the behavior of the object
"Integer".

5 isBehavior -> false.
Integer isBehavior -> true.
Integer class isBehavior -> true.

What about Traits?

Traits are "behavioral(?)", but they don't define the behavior alone, only
the composition of
Traits in an actual class defines the behavior of an Object.

TClass isBehavior -> false.

So far so good.

Smalltalk globals allBehaviors includes:TClass -> true !

No suprise, because #allBehaviors explicitly collect all classes and traits.
But the question is, what do we want to call a "Behavior"?

All Classes and MetaClasses (-> Behavior allSubclasses)
All Classes and Traits
All Classes and Traits and MetaClasses and ClassTraits
All Classes and MetaClasses and some Traits?

(this of course, is related to
http://forum.world.st/RBEnvironments-allClasses-Traits-Meta-tp4796370.html).

In squeak Traits are behavior too.


nicolai

Reply via email to