<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Facu,</p>
    <p>(inline)</p>
    <div class="moz-cite-prefix">On 2026-04-07 4:34 PM, Facundo Javier
      Gelatti via Cuis-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAC1UKnY8=EQPG5L6Yr1vKfXbb2U+66itnP7wVt3B6DeWLdDg_w@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div>This is very interesting! I think what you say makes
            sense.</div>
          <div><br>
          </div>
          <div>You leave me thinking about that distinction (i.e. a
            method that we strongly expect to be there, vs. a method
            that <i>could</i> 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").</div>
        </div>
      </div>
    </blockquote>
    <p>I think that there are several protocols that a class may
      provide. Some maybe subsets of others. #buildMorphicWindow is part
      of an expanded protocol that only some windows provide.</p>
    <blockquote type="cite"
cite="mid:CAC1UKnY8=EQPG5L6Yr1vKfXbb2U+66itnP7wVt3B6DeWLdDg_w@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div><br>
          </div>
          <div>Other things that I have in my mind:<br>
            <ul>
              <li>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)!</li>
              <li>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 <i>could</i>
                be overridden by subclasses (but it's not necessary to
                do so to have e.g. #open:label: work, etc.).</li>
            </ul>
          </div>
        </div>
      </div>
    </blockquote>
    <p>Having #buildMorphicWindow as an empty method is not good IMO
      because it can hide the problem. We want _some_ exception. A DNU
      is better than just continue silently. But I like the idea of a
      middle ground. In this case, I implemented and called
      #subclassOptionalResponsibility. A reasonable error message plus
      some comments may be a good solution. Please take a look, it is
      now at GitHub.</p>
    <blockquote type="cite"
cite="mid:CAC1UKnY8=EQPG5L6Yr1vKfXbb2U+66itnP7wVt3B6DeWLdDg_w@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div><br>
          </div>
          <div>I hope my comments make sense (mostly things to ponder,
            we don't necessarily need to act on them right now).</div>
        </div>
      </div>
    </blockquote>
    <p>Of course they do. This kind of discussion is great, it enables
      polishing the system!</p>
    <blockquote type="cite"
cite="mid:CAC1UKnY8=EQPG5L6Yr1vKfXbb2U+66itnP7wVt3B6DeWLdDg_w@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div><br>
          </div>
          <div>Cheers!</div>
          <div>Facu</div>
          <div><br>
          </div>
        </div>
      </div>
    </blockquote>
    <p>Cheers!</p>
    <blockquote type="cite"
cite="mid:CAC1UKnY8=EQPG5L6Yr1vKfXbb2U+66itnP7wVt3B6DeWLdDg_w@mail.gmail.com">
      <div dir="ltr"><br>
        <div class="gmail_quote gmail_quote_container">
          <div dir="ltr" class="gmail_attr">El mar, 7 abr 2026 a las
            15:39, Juan Vuletich (<<a
              href="mailto:juan@jvuletich.org" moz-do-not-send="true"
              class="moz-txt-link-freetext">juan@jvuletich.org</a>>)
            escribió:<br>
          </div>
          <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi
            Facu,<br>
            <br>
            I don't like adding a send to #subclassResponsibility in the
            abstract <br>
            class in this case. #subclassResponsibility is a strong
            assertion from <br>
            the system that all subclasses should reimplement that
            method. It is a <br>
            message directed to any developer adding a new subclass. And
            in this <br>
            case, that's not true. There are subclasses that don't need
            that method <br>
            at all. It is true, #open:label: will fail. That only means
            that <br>
            #open:label: is not appropriate for them. Adding the call to
            <br>
            #subclassResponsibility would not change this fact.<br>
            <br>
            Hope this makes sense to you.<br>
            <br>
            Thanks,<br>
            <br>
            On 2026-04-02 4:14 PM, Facundo Javier Gelatti via Cuis-dev
            wrote:<br>
            > The #buildMorphicWindow message is sent from
            SystemWindow class >> <br>
            > #open:label:, and the method is on many window classes
            on the system, <br>
            > so I thought it'd be nice to have the abstract method
            in SystemWindow. <br>
            > I attach a (very small) change that adds that method.<br>
            ><br>
            > I also noticed this method is missing
            in TranscriptWindow, <br>
            > WorkspaceWindow and PreDebugWindow, so the #open:label:
            message is <br>
            > failing on those classes. I'm not sure what we should
            do about them.<br>
            ><br>
            > Cheers!<br>
            > Facu<br>
            ><br>
            -- <br>
            Juan Vuletich<br>
            <a href="http://www.cuis.st" rel="noreferrer"
              target="_blank" moz-do-not-send="true">www.cuis.st</a><br>
            <a href="http://github.com/jvuletich" rel="noreferrer"
              target="_blank" moz-do-not-send="true">github.com/jvuletich</a><br>
            <a href="http://researchgate.net/profile/Juan-Vuletich"
              rel="noreferrer" target="_blank" moz-do-not-send="true">researchgate.net/profile/Juan-Vuletich</a><br>
            <a href="http://independent.academia.edu/JuanVuletich"
              rel="noreferrer" target="_blank" moz-do-not-send="true">independent.academia.edu/JuanVuletich</a><br>
            <a
href="http://patents.justia.com/inventor/juan-manuel-vuletich"
              rel="noreferrer" target="_blank" moz-do-not-send="true">patents.justia.com/inventor/juan-manuel-vuletich</a><br>
            <br>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis.st">www.cuis.st</a>
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich</pre>
  </body>
</html>