<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <br>
    <blockquote type="cite" cite="mid:1054807958.15296354.1664398190396.JavaMail.zimbra@u-pem.fr">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">
        <div data-marker="__QUOTED_TEXT__">
          <div>
            <div>- You can declare a main() on other things that a
              class, on an interface, on an enum or a record.</div>
            <div>  Being able to declare the "main" without to have to
              declare it static is nice, but the semantics you propose
              creates new issues,</div>
            <div>  because the auto-instantiation does not work if the
              container is an interface or a record with components.</div>
            <div>  This feels too magical to me, and as a teacher i will
              have to explain it at some point.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Perhaps, but not on the first day.  <br>
    <br>
    <blockquote type="cite" cite="mid:1054807958.15296354.1664398190396.JavaMail.zimbra@u-pem.fr">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">
        <div data-marker="__QUOTED_TEXT__">- At the begining, teaching
          records is easier than teaching classes because you can do too
          much with a class while records have a simple syntax and a
          simple semantics.</div>
      </div>
    </blockquote>
    <br>
    I agree teaching records first is a good teaching strategy; I have a
    lot to say about curriculum design, but I'd like to keep that a
    separate discussion.  Suffiice it to say that an important secondary
    goal here is unconstraining the order in which things must be
    taught.  <br>
    <br>
    <blockquote type="cite" cite="mid:1054807958.15296354.1664398190396.JavaMail.zimbra@u-pem.fr">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">  In a dream world, we should be able to
        declare records inside a classless class, but i do not see how
        the compiler will not see a top level record instead of a
        classless class containing records.<br>
        <div data-marker="__QUOTED_TEXT__"><br data-mce-bogus="1">
        </div>
      </div>
    </blockquote>
    <br>
    Hoping to make this dream possible.<br>
    <blockquote type="cite" cite="mid:1054807958.15296354.1664398190396.JavaMail.zimbra@u-pem.fr">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">
        <div data-marker="__QUOTED_TEXT__">
          <div> </div>
          <div>- At my uni, we start by teaching Python and JavaScript,
            then C then Java. We do not teach ipython because the
            semantics is slightly different from python.<br>
          </div>
          <div>  For the same reason, we do not use jshell for
            undergraduates because the semantics is sligthly different
            than java.</div>
          <div>  For the same reason, if the semantics of a classless
            class is different from the semantics of a regular class ,
            we will not use it too.</div>
        </div>
      </div>
    </blockquote>
    <br>
    Agree, and this was a strong driving motivation.  This is why we
    have avoided trying to create a "safe subset for beginners", and
    instead focus on allowing unnecessary wrapping to be elided.  <br>
    <br>
    <blockquote type="cite" cite="mid:1054807958.15296354.1664398190396.JavaMail.zimbra@u-pem.fr">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">
        <div data-marker="__QUOTED_TEXT__">- I don't hink we can add an
          auto static import without causing source backward
          compatibility issues, because you can not have several import
          static using the same last identitfier.
          <div>  By example, if an existing class declare<br data-mce-bogus="1">
          </div>
          <div>    import static foo.A.println;<br data-mce-bogus="1">
          </div>
          <div><br data-mce-bogus="1">
          </div>
          <div>  this class will now fail to compile.</div>
          <div>  That's why no auto static import was added in Java 5.</div>
        </div>
      </div>
    </blockquote>
    <br>
    There is some complexity here, but it does not seem insurmountable.
    <br>
    <br>
    <br>
  </body>
</html>