Re-doing Morphic ( Was: Re: Traits prototype image )

Ned Konz ned at
Thu Feb 6 17:37:20 UTC 2003

On Thursday 06 February 2003 07:43 am, tblanchard at wrote:
> On Thursday, February 6, 2003, at 03:54  PM, Brent Vukmer wrote:
> > Let's say a team of people ( or one really energetic person )
> > reworks Morphic to make it simpler, easier to understand, and
> > perhaps faster. They announce "SonOfMorphic 1.0" to the list and
> > put it on SqueakMap. How many current Morphic app developers
> > would put in the work to move their app to SonOfMorphic?
> Well, I would hope that backwards compatibility could be (mostly)
> maintained.
> >  How many Project authors would re-do their Projects using
> > SonOfMorphic?  Let's say half of the current authors/developers
> > do so. Wouldn't that split the efforts of the Squeak community?
> How many morphic projects are there?  

Quite a few. Many of us have used Morphic as a base for non-trivial 

> To be honest, I get lost
> every time I dig into the thing. Its not quite clear to me how to
> build interesting compositions of morphs - and once I do how do I
> use my interesting composition as a template for making more
> instances?
> I do nextstep development too (Cocoa they call it now) and
> Interface Builder seems kind of similar in that you assemble a
> bunch of objects - then serialize that assembly into an archive. 
> When the app runs, you can get a newly instanced copy of that
> assembly by saying
> NSBundle loadNibNamed: nibName owner: rootObject.
> I'm not clear on the equivalent technique in Morphic.  Once I make
> an assembly, where do I put it so I can find it again (I don't
> necessarily want it visible to the user)?

I'm not sure about what kind of "building" or "assembly" you're 
referring to.

If you mean building in code, the typical way is to embed the 
construction into a method that returns a built-up (composite) morph.

If you mean building manually via direct manipulation, you can 
serialize it to disk and then deserialize it when you need a copy, or 
you can keep it somewhere in the image as a prototype and just 
duplicate it.

Either strategy will result in a new morph that's not connected to 
your model (if you have a separate model), so you'll still have to 
wire it up using code.

To save an existing morph in a file manually, you can pop up a halo 
menu, and choose "debug/save morph to file". This file can be 
re-instantiated from the File List (load as Morph) or in your program 
by doing something like:

Morph fromFileName: 'myMorph.morph'

Ned Konz

More information about the Squeak-dev mailing list