[squeak-dev] Replacing or enhancing or supplementing Morphic (was: How do I "sleep 5"?)

David T. Lewis lewis at mail.msen.com
Wed Mar 1 01:39:54 UTC 2023

On Tue, Feb 28, 2023 at 01:25:17PM -0800, Stephen Travis Pope wrote:
> The MVC framework extended all the way up to the top-level views, where
> it???s convenient to have separate views and controllers.

When I look at MVC and Morphic in Squeak (which thankfully is actually
something that we can do, and all in the same image, woohoo!) there
is one thing that stands out to me as a really interesting difference.

In MVC, each Controller has its own Process, and those processes are
scheduled when needed as windows are activated. In Morphic, there is
a single UI process.

Obviously there are historical reasons why the two frameworks were
done in these two different ways, but to me this seems to me to be
a rather fundamental difference in approach.

That leads me to wonder what a morphic style of interface might look
like if the morphs were not directly dependent on a single UI thread.

Maybe this is what Andreas was addressing in Tweak? I really do not
know. But it seems to me that both MVC and Morphic are wonderful
frameworks, while each carries some baggage from the era in which
it was developed.

Stephen Travis Pope is trying to encourage some discussion here.
I don't think that he literally wants to go back to the original
MVC framework, but if we could have some kind of "MVC" that looks
and behaves like Morphic, and that maintains a better separation
of models, views, and controllers, that might be a Very Good Thing.

I also suspect that if separation of model, view, and controller
is a good thing, then getting rid of our Morphic dependency on a
single UI thread may be a prerequisite. Without that, the concept
of a "controller" does not make much sense.

Having said all this, if we imagine that each Morphic "controller"
is associated with its own control Process, then the problem of
synchonizing those Processes to give the appearance of smooth
concurrent display on the screen is possibly quite difficult, and
this very likely is the reason for the early design decision in
Morphic to use a single UI thread for each Morphic world.

This is one of the many times when I wish that Andreas could be
here to focus the discussion and point out the painfully obvious
things that we are probably all overlooking.


More information about the Squeak-dev mailing list