<div dir="ltr">
To provide another perspective that doesn't come from anyone inside the
JDK development process or affiliated with any organisation that is.<br><br>I
have been in professional software development for 30 years. While I am
not involved formally in education, I do 'give back' by involving
myself in several active Java communities. For students new to
programming, this is a mix of self-guided individuals (or misleadingly
guided - youtube is filled with some terrible material), or lost-at-sea
secondary and tertiary course students (you may not see all those in
your courses that are struggling, and may not be the sole source of
education on the topic).<br><br>I have also followed, in depth, the
initial discussions of the features in this JEP from early inception,
through the JEP's evolution to its current preview state.<br><br><div>There
are two things this JEP addresses. One is directly for the student,
shrinking their learning load, and the second is one of mind-share.</div><div><br></div><div>If
the initial experience is not simplified then students with a choice
will engage with other languages first and educators will increasingly
pivot away from Java to languages that present an easier first
experience.</div><div><br></div><div>That initial experience is filled
with complexities such as the static/non-static distinction, the
ceremonies of declaring a class (even the minor matter of matching,
case-sensitively, the public class name to the filename) or, as your
posting focuses on, the complexity of the entry-point declaration.</div><div><br></div><div>Oft-used
mantras such as "just ignore this bit for now" or "just copy this and
ignore the stuff above and below" don't truly lift the cognitive burden
from the students as well as we'd hope. With the frequency of students
struggling with the initial experience, educators have to accept that it
is human nature to either dwell on these details or be impacted by the
distraction of reading around them. Removing the need for them does have
some merit to early learning.</div><div><br></div><div>I should note
that I was initially negative towards this JEP myself. I had concerns that it was
attempting to overfit the initial engagement experience to the detriment
of later learning progression. This is seen often in libraries and
frameworks that tune a part of their API to present a more elegant, but
eventually irrelevant, hello-world case - an increasingly common "please
pick me" marketing ploy for a system component that should be selected
on long-term merits, not initial gut-feelings.</div><br>However, having
been involved (largely as an observer) in the evolution of these
changes, I can say that the discussion has been robust. Several
proposals were rejected or revisited specifically because, while they
would make an even simpler first step, they would add new burdens to
progression. I no longer feel that this is an irresponsible or
detracting change.<br><br><div>As a developer with some projects heavily
invested in Java, it is good to see that Oracle and others are
investing significant effort in a large number of very high-value
features (the JVM Language Summit shows off a number of them). These
look likely to ensure the platform remains relevant, even regaining
ground in a world that has shifted, changing how and where Java is
deployed. But that effort will only be valuable if new developers
continue to learn Java in the first place - I think this JEP does go
some way to addressing that.</div>
<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Sep 16, 2023 at 5:40 AM Arne Styve <<a href="mailto:arne.styve@ntnu.no">arne.styve@ntnu.no</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 class="msg-3781502641138647440">
<div lang="NO-BOK" style="overflow-wrap: break-word;">
<div class="m_-1759205334407965359WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt">I recently came across this JEP, and was very surprised. Why on earth should you add features to a professional programming language just to apparently make it a bit easier for students and beginners
to learn to code? And especially when the suggested feature has no real use (and cannot be used) once you learn to program OOP properly?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt">I’ve been a SW-developer and manager for more than 20 years, and a teacher of OOP at University for 15 years, and have never, ever experienced that the public static void main(String[] args) have
been remotely problematic for students in learning to program.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt">Please have this JEP terminated.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt"><u></u> <u></u></span></p>
</div>
</div>
</div></blockquote></div>