Morphic thoughts and Questions

Henrik Gedenryd Henrik.Gedenryd at lucs.lu.se
Thu Jun 22 08:02:11 UTC 2000


Stephane Ducasse wrote:

> 
> Hi all
> 
> I decided to rejump into the morphic (without the refactoring browser nearly a
> nightmare ;) Everybody should look at that if we want to have a chance to
> have good good. (if doing a change cost 5 min and you have 10 s
> may be in 2s you will do it!))
> 
> So I would like to know what are the most important classes that I
> should study and relationships.
> 

Try eg. RectangleMorph as a reasonably representative, plain vanilla morph,
and the 'core' categories of Morph and HandMorph for core functionality. I
proposed a couple of months ago that the core of Morphic be purified,
especially by separating out all the eToy stuff that is spread all over the
place.

> For the moment I have:
> Morph (horrible Blob class)

well then you haven't looked closely at HandMorph ;)

> MorphExtension
> Player??
> PasteUpMorph
> HandMorph


> Up until now my view is extremely blurry.  I understand how to use
> pluggableMorph to create widget.

Unfortunately, pluggableMorphs are not very representative, but rather serve
for backward compatibility. In general, widgets are not good examples of how
Morphic is meant to be used--in fact much the opposite. They have been
brought into it as the Smalltalk legacy.

> I understand that a morph may have an
> extension that provide extra state.  I understand that a world has a
> worldstate that holds a canvas on which every morph will draws itself.
> 
> I try to understand Morphic by looking at class catgerories per categories.

Good strategy. Unortunately it doesn't work very well here :)

> In fact I really have the impression that Morphic are impacted by the
> scripting, turtle etoy like stuff.

You got that part right :)

> Was it the same in Self?
> I was dreaming that in Self the model was simpler.

I think it was better there--because there was no eToy stuff--all the
experimentation that has been done with eToy seems to have left its traces
in more than one place.

The dream I have been having is that the eToy stuff would be separated from
Morphic to the point of being removable from the image/in a separate
namespace. But I don't see it at all in my crystal ball...

> 
> I have a bunch of questions
> 
> 
> - Has any morph a player?
> For example, I have the impression that the pluggableMorph
> do not have one. 
> When the player is necessary it is hold in the morph extension.

I'd say, forget about players, unless you're in eToy. They're completely
eToy-related. I still don't really know what they do :) In fact, my best
hint for learning Morphic is to completely disregard the eToy stuff. Now if
that was just a little bit easy, since it is so completely intermingled with
everything else in all the wrong places...

> I have the impression that the player is only needed for the
> scripting environment. So or a basic player should be put in
> the Morphic Kernel or I was wondering if Morph could not be
> split into two classes:
> one without extension and etoy related stuff
> and one with extension.

The extension is really a general mechanism used to save memory, by putting
rarely used items there. I think this could be done a lot more cleanly in
Self by adding slots to any single object.

> A bit like what people made in VisualWorks were they split the
> View class into three classes (one with the controller, model).
> 
> - What is the difference with a player and an actor state?
> I really the impression that actorState has nothing to do with
> Morph but is just an impact of scripting eToy,

eToy, eToy, neither are relevant to Morphic in general.

> - Is PasteUpMorph is the class of the current screen when I open
> a morphic project?
> if yes (I hope that I understood right)
> why PasteUpMorph needs to have information about
> lastTurtlePositions, TurtlePen, TurtleTrails........

Yes, and that's a good question, and that's a good example of what I mean by
eToy showing up in all the weirdest places, which is why I think the chance
of it being factored out is slim...

 As I see it now, no one outside SqC can really even try to do much cleaning
up in the core, since it would surely ruin eToy, which would probably reduce
its appeal to SqC as an 'improvement' to Squeak. After all, to a major
extent, eToy is what SqC is using Squeak for...

Henrik






More information about the Squeak-dev mailing list