[Cuis-dev] Add abstract method SystemWindow>>#buildMorphicWindow

Facundo Javier Gelatti javiergelatti at gmail.com
Tue Apr 7 12:34:17 PDT 2026


This is very interesting! I think what you say makes sense.

You leave me thinking about that distinction (i.e. a method that we
strongly expect to be there, vs. a method that *could* be there for
completeness, but which is not really necessary). I guess this is something
I don't think too much about when I consider the "type" of an object (i.e.
which messages it should be able to correctly understand). I think I tend
to view each message as either part or not part of the expected protocol,
not something in between (like "maybe/probably part of the protocol").

Other things that I have in my mind:

   - I'm not sure if we should have another marker for these "nice to have"
   messages. My first reaction is "no", just because we'd be adding more
   elements to think about in the system; but then I come back to the original
   distinction, which is something we should think about anyway (even if
   implicitly)!
   - One concrete "middle ground" in this case could be to implement
   SystemWindow>>#buildMorphicWindow as an empty method, maybe with a comment
   mentioning that it's just a non-essential extension point which *could*
   be overridden by subclasses (but it's not necessary to do so to have e.g.
   #open:label: work, etc.).


I hope my comments make sense (mostly things to ponder, we don't
necessarily need to act on them right now).

Cheers!
Facu


El mar, 7 abr 2026 a las 15:39, Juan Vuletich (<juan at jvuletich.org>)
escribió:

> Hi Facu,
>
> I don't like adding a send to #subclassResponsibility in the abstract
> class in this case. #subclassResponsibility is a strong assertion from
> the system that all subclasses should reimplement that method. It is a
> message directed to any developer adding a new subclass. And in this
> case, that's not true. There are subclasses that don't need that method
> at all. It is true, #open:label: will fail. That only means that
> #open:label: is not appropriate for them. Adding the call to
> #subclassResponsibility would not change this fact.
>
> Hope this makes sense to you.
>
> Thanks,
>
> On 2026-04-02 4:14 PM, Facundo Javier Gelatti via Cuis-dev wrote:
> > The #buildMorphicWindow message is sent from SystemWindow class >>
> > #open:label:, and the method is on many window classes on the system,
> > so I thought it'd be nice to have the abstract method in SystemWindow.
> > I attach a (very small) change that adds that method.
> >
> > I also noticed this method is missing in TranscriptWindow,
> > WorkspaceWindow and PreDebugWindow, so the #open:label: message is
> > failing on those classes. I'm not sure what we should do about them.
> >
> > Cheers!
> > Facu
> >
> --
> Juan Vuletich
> www.cuis.st
> github.com/jvuletich
> researchgate.net/profile/Juan-Vuletich
> independent.academia.edu/JuanVuletich
> patents.justia.com/inventor/juan-manuel-vuletich
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20260407/e2180665/attachment.htm>


More information about the Cuis-dev mailing list