[Cuis] Time to break Morphic?

Juan Vuletich juan at jvuletich.org
Wed May 16 08:03:04 CDT 2012


Hi Phil,

Phil (list) wrote:
> Juan,
>
> It's great to have a list to discuss all things Cuis!  And it couldn't have come at a better time.  Cuis 4.0 has inspired me to start thinking a little crazy so I wanted to put this out for some feedback....
>   

Great!

> One area that has been bugging me for a while is Morphic.  I the concept of it but one design decision has bothered me from the first time I used it: global coordinates.  Setting aside the question of whether or not this was the right way to go, 

It was not the right way to go. There was an illuminating interview with 
John Maloney (co-creator of Morphic, implementor of Squeak Morphic) in 
the SqueakNews e-zine. I could not find it online, so I uploaded all 5 
issues of SqueakNews to http://www.jvuletich.org/SqueakNews/ . The 
relevant part is in the third part of the interview, in the September 
issue. After reading this, I awaited for a couple of years for someone 
to follow John's advice. Then, I decided to do Morphic 3.

The whole interview is great, and every bit of SqueakNews is pure gold.

> it has a practical implication for something I've decided to take a whack at: graphics performance.  I've just started working on a plugin for hardware backed views that is a natural fit for a specialized type of Morph.  

Please tell us more about this!

> To do so in the most straightforward way, Morphs would need to be based on a local coordinate system.  Right now I'm thinking about whether to try to rework the existing Morphic structure in Cuis or create a parallel local coordinate-based class hierarchy and am interested in feedback re: the pros and cons of each approach.
>   

A parallel hierarchy based on local coordinates can be done. But many 
hacks would be necessary to make it run side by side with existing 
morphs. And the nice properties would be limited to the new morphs.

To me, the way to do it is converting all of Morphic to use local, Float 
coordinates. While doing so, it is also necessary to clean Morphic, so 
it can evolve.

> I seem to recall you writing/speaking in favor of this in the past re: your Morphic rewrite project (how's that going BTW?) and wanted to get your thoughts as to whether local coordinate based Morphs would be something you'd like to see in Cuis.  If so, any pointers on things I should be thinking about / watching out for are appreciated.
>
> Thanks,
> Phil
>   

I've been silent for a while wrt Morphic 3, but I'm working on it. Much 
of the simplification and redesign I've been doing in Morphic in Cuis is 
to ease this transition, and to finally have a system that is simple, 
consistent, and based of Float local coordinate. This has been my 
objective for a long time, and it still is.

Right now I have a set of about 20 change sets that add 'position' and 
'extent' instance variables to Morph, and reduce a lot the use of the 
now obsolete 'bounds' instance variable. This is not finished yet, but 
it could be better for you to start playing with this than to wait until 
Morphic 3 is ready for prime time...

Cheers,
Juan Vuletich




More information about the Cuis mailing list