<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <font size="4"><font face="monospace">I think that's where we should
        start; if we are spectacularly successful, we can come back for
        more.</font></font><br>
    <br>
    <div class="moz-cite-prefix">On 1/26/2023 5:46 PM, Archie Cobbs
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CANSoFxsYZ+oJf8LR0QLPHZ0rnxwu8=e7BLGJSLAjTV+YyVztvA@mail.gmail.com">
      
      <div dir="ltr">
        <div dir="ltr">On Thu, Jan 26, 2023 at 4:05 PM Maurizio
          Cimadamore <<a href="mailto:maurizio.cimadamore@oracle.com" moz-do-not-send="true" class="moz-txt-link-freetext">maurizio.cimadamore@oracle.com</a>>
          wrote:</div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">On 26/01/2023 21:37,
            Maurizio Cimadamore wrote:<br>
            > For instance, even if we only allow updates to local
            fields, an <br>
            > instance initializer can now see these updates. for
            you, this is <br>
            > something good, for me this is just something else that
            developers <br>
            > would have to remember about initialization order.<br>
            ><br>
            Also, thinking some more, I realized that one of the things
            I find more <br>
            "offputting", is that putting initialization of instance
            fields before <br>
            `super` violates the mental barrier I have (and that I'm
            sure other <br>
            developers have too) that the letters `t h i s` should never
            appear <br>
            before a super() invocation. And I know it's an assignment,
            and it <br>
            special, and the VM can deal with it... but... still...
            language-wise I <br>
            think if we can latch onto rules that are fairly simple to
            explain ("no <br>
            `this` -explicit or implicit - before this point!!!!), it
            makes things <br>
            easier. <br>
          </blockquote>
        </div>
        <div><br>
        </div>
        <div>Well I agree with that sentiment... having a simpler mental
          model is always nicer.<br>
        </div>
        <br>
        <div>Personally as a developer I would gladly trade that simpler
          mental model for the warm & secure feeling I'll get when I
          can KNOW that my final fields are taken care of, before
          anything else can possibly go wrong with them (maybe restrict
          to only assignments to local final fields?). And the only
          people likely to venture into the init-before-super territory
          are the ones who actually need it... and they will need it
          badly... the rest of the crowd can keep super() first and keep
          their model nice & simple. It's kindof like ThreadLocals -
          you'll know when you need one, and when you do you'll be glad
          they're there because you realize there's no other way; but
          until then, you have no need to worry or even know about them.<br>
        </div>
        <div><br>
        </div>
        <div>Anyway it sounds like - unless John Rose wants to pick up
          the fight? - the sentiment here is to only include Brian's
          item #1, i.e., to allow only purely "static context" code
          prior to what is to remain a single super()/this() call. I
          think this is being too conservative but that's just my one
          opinion.<br>
        </div>
        <div><br>
        </div>
        <div>Do we have official agreement on this? I'm happy to keep
          arguing if not :)<br>
        </div>
        <div><br>
        </div>
        <div>-Archie<br>
        </div>
        <br>
        -- <br>
        <div dir="ltr" class="gmail_signature">Archie L. Cobbs<br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>