<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>