<div dir="ltr"><div class="gmail_default" style="font-family:monospace">Hello,</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">Thank you for the response!</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">> > 
1. In
          the name of simplifying things for beginners<span class="gmail-im"><blockquote type="cite"><div dir="ltr">
      </div>
    </blockquote>
    > <br></span>> Any line of thinking that starts this way is dangerous,</div><div class="gmail_default" style="font-family:monospace">> because it
    often leads to what ends up being a</div><div class="gmail_default" style="font-family:monospace">> "beginner's dialect of Java",
    which means things to</div><div class="gmail_default" style="font-family:monospace">> unlearn once the student graduates to "full
    programs"</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">Touché. In this case, the unlearning (or rather, relearning) would be that the rest of the world uses main and that run is nothing more than an alias that is for beginners. Hence the dialect. That makes sense.</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">> > 2. Alternatively, could we have the name be</div><div class="gmail_default" style="font-family:monospace">> > irrelevant if it is the only method in the class? <span class="gmail-im"><br></span></div><div class="gmail_default" style="font-family:monospace">> </div><div class="gmail_default" style="font-family:monospace">> If we did this, as soon as someone refactored their</div><div class="gmail_default" style="font-family:monospace">> program to add a
    second method, we wouldn't know</div><div class="gmail_default" style="font-family:monospace">> how to launch the program. This is
    falling off the</div><div class="gmail_default" style="font-family:monospace">> onramp before you get to the highway!</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">Also fair. I had visualized it as whoever was teaching them that you can have more than one method would also teach them to disambiguate. But the way you described it is better. If we make the initial lift a little heavier by telling them that execution must start with a main method, then the student does not need to disambiguate. Furthermore, like you said, the act of adding another method does not affect/taint what is already there, whereas my suggestion does.</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">Thank you for the help!<br></div><div class="gmail_default" style="font-family:monospace">David Alayachew<br>



</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 1, 2023 at 5:54 PM Brian Goetz <<a href="mailto:brian.goetz@oracle.com">brian.goetz@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

  
  <div>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_default" style="font-family:monospace">1. In
          the name of simplifying things for beginners</div>
      </div>
    </blockquote>
    <br>
    Any line of thinking that starts this way is dangerous, because it
    often leads to what ends up being a "beginner's dialect of Java",
    which means things to unlearn once the student graduates to "full
    programs".  Instead, what we want is for irrelevant details to fade
    into the background until they are needed.  Learning "a program
    begins with a main method" seems reasonable to put on the beginner's
    radar, in ways that the static-instance distinction does not.  The
    onramp should match speed and direction with the highway.<br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">2. Alternatively, could we have the name be
        irrelevant if it is the only method in the class? </div>
    </blockquote>
    <br>
    If we did this, as soon as someone refactored their program to add a
    second method, we wouldn't know how to launch the program.  This is
    falling off the onramp before you get to the highway!<br>
    <br>
    <br>
  </div>

</blockquote></div>