Hi everyone.
In many places in Squeak, we do things to classes. In many of those, we actually want to be doing those things also to Traits, or any other code-containing abstraction, probably. For example, we want to to be able to browse it, file it in/out and such.
So what do we call this concept?
Just to make the discussion more concrete, I'll give some specific cases: -SysNav>>allClasses should probably only return real classes, but it is used in various places in which all Traits should be returned as well, for example Compiler recompileAll should recompile Traits, since otherwise some obsoletely compiled methods would remain even in classes : ones that are composed with Traits. -In the tools, in many places we do something like "self selectedClass ifNil:[^self]. <otherwise>" In some of those places, we actually want to exclude Traits, and there I've been using #isBehavior: instead of #ifNil:, however Adrian and I are both somewhat inclined to think of Traits as being Behaviors, sort of. But clearly, we want some name that includes both, and some name that includes classes (and other Behavior subclasses?) but that excludes traits.
So I'm asking for more opinions.
Daniel
Difficult question...
Behavior is a good name for classes and traits. Behavior as in Smalltalk is more ClassEssence or ClassCore but we cannot change that.
Stef
On 4 oct. 05, at 04:42, Daniel Vainsencher wrote:
Hi everyone.
In many places in Squeak, we do things to classes. In many of those, we actually want to be doing those things also to Traits, or any other code-containing abstraction, probably. For example, we want to to be able to browse it, file it in/out and such.
So what do we call this concept?
Just to make the discussion more concrete, I'll give some specific cases: -SysNav>>allClasses should probably only return real classes, but it is used in various places in which all Traits should be returned as well, for example Compiler recompileAll should recompile Traits, since otherwise some obsoletely compiled methods would remain even in classes : ones that are composed with Traits. -In the tools, in many places we do something like "self selectedClass ifNil:[^self]. <otherwise>" In some of those places, we actually want to exclude Traits, and there I've been using #isBehavior: instead of #ifNil:, however Adrian and I are both somewhat inclined to think of Traits as being Behaviors, sort of. But clearly, we want some name that includes both, and some name that includes classes (and other Behavior subclasses?) but that excludes traits.
So I'm asking for more opinions.
Daniel
squeak-dev@lists.squeakfoundation.org