Great issues!

The important thing about the dependency mechanism is that it’s all within the same thread; obviously any component can choose whether to delay or queue updates, but it receives the update: message synchronously from the model (together with all other dependents).  One could add aspect filtering (i.e., the dependents collection becomes a dictionary keyed by symbolic aspect) to reduce the number of updates if that becomes an issue.

As to what’s wrong with the Wrapper framework, well, it was initially called “Navigator” (this was before web browsers stole the name), and the annoying thing about debugging was the levels of nesting of wrappers, so you sometimes had to drill down several layers to find the object that was doing the real work.  This applies both to model wrappers and GUI component wrappers, but one can certainly extend explorers to (e.g.,) jump to a nested visual component subclass.

The MVC framework extended all the way up to the top-level views, where it’s convenient to have separate views and controllers.

stp

--------

Stephen Travis Pope    Ojai, California, USA
    pastedGraphic.tiff
     http://HeavenEverywhere.com
     http://FASTLabInc.com
     https://vimeo.com/user19434036/videos
     http://heaveneverywhere.com/Reflections



On Feb 28, 2023, at 1:14 PM, rabbit <rabbit@callistohouse.org> wrote:

Or use the built in promises and consider process switching in the Scheduler to be the vat. Evenstill, eventual sending is eventual sending. It’s a whole other thing.


Have a good one; keep it, light.
Kindly, rabbit . .. … ‘…^,^ 🐇🐇🐇

Sent from Callisto House mobile - Ganymede
:: decentralized mobile homeless solutions ::




On Tue, Feb 28, 2023 at 16:02, rabbit <rabbit@callistohouse.org> wrote:
Hi. I’d humbly suggest…

On Tue, Feb 28, 2023 at 15:36, Stephen Travis Pope <stephen@heaveneverywhere.com> wrote

3: the thread-unsafe nature of Morphic, and
Load ‘ESqueak.release.1’ and make the UI thread run in a Vat. Use eventual sending, not with math, but MVC component level.
4: Morphic isn’t MVC and doesn’t use the dependency mechanism for updating, leading to poor scalability and multiple viewing.
I could easily add these for dependencies to be thread safe.
  • Object>>#ewhen: anEventSelector send: aMessageSelector to: anObject
    self when: anEventSelector evaluate: (EventualMessageSend receiver: anObject selector: aMessageSelector)
  • Object>>#ewhen: anEventSelector send: aMessageSelector to: anObject with: anArg
    self when: anEventSelector evaluate: (EventualMessageSend receiver: anObject selector: aMessageSelector argument: anArg)

  • Object>>#ewhen: anEventSelector send: aMessageSelector to: anObject withArguments: anArgArray
    self when: anEventSelector evaluate: (EventualMessageSend receiver: anObject selector: aMessageSelector arguments: anArgArray)
Cheers!


Have a good one; keep it, light.
Kindly, rabbit . .. … ‘…^,^ 🐇🐇🐇

Sent from Callisto House mobile - Ganymede
• decentralized mobile homeless solutions