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