New candidate JEP: 463: Implicit Classes and Instance Main Methods (Second Preview)

David Alayachew davidalayachew at gmail.com
Wed Nov 1 21:33:51 UTC 2023


And to be clear, irrelevant means, call it whatever you want.

On Wed, Nov 1, 2023 at 5:23 PM David Alayachew <davidalayachew at gmail.com>
wrote:

> Hello Mark,
>
> Thank you for posting this!
>
> I really like the direction of simplifying concepts and reducing the
> surface size. Starting out with a smaller domain of concepts makes the
> universe easy to understand, not to mention, you can appreciate the
> expanded domain once you need to start introducing some
> programming-in-the-large concepts.
>
> > The new programmer encounters these concepts
> > at the worst possible time, before they learn
> > about variables and control flow, and when
> > they cannot appreciate the utility of
> > programming-in-the-large constructs for
> > keeping a large program well organized.
> > Instructors often offer the admonition,
> > "don't worry about that, you'll understand it
> > later." This is unsatisfying to them and
> > their students alike, and leaves students
> > with the enduring impression that the
> > language is complicated.
>
> Rereading this paragraph, I appreciate the wording of it very much. It
> helps us see the mindset of the student as clearly as possible. So much so
> that it raises 2 questions.
>
> 1. In the name of simplifying things for beginners, what is the reason why
> the main method is specifically called "main"? Would not "run" or something
> similar be better? The word "main" implies to me that it is the "main"
> method (out of all of the others). But that right there means I must be
> aware of the concept of there being multiple methods. But again, that's
> forcing the beginner to think about concepts that they don't yet need to.
> Most students' first programs will be solely contained in a single method.
>
> 2. Alternatively, could we have the name be irrelevant if it is the only
> method in the class? If we do that, then the concept of the "main" method
> would be really impactful, because, once you introduce the concept of
> multiple methods, students are likely to ask themselves "which method will
> get run first?" In that instance, the concept of a method called main wll
> be extremely intuitive and understandable. I really like this idea. I feel
> like we have an opportunity for a memorable "light bulb" moment in
> student's minds. If they ask themselves which method will be called now
> that there are multiple, the "main" method will make perfect sense the
> first time. It will complicate that launch protocol. For example, do we
> allow parameters? I say, it should follow suit with "main" semantics.
>
> Thank you for your time and help!
> David Alayachew
>
> On Wed, Nov 1, 2023 at 4:34 PM Mark Reinhold <mark.reinhold at oracle.com>
> wrote:
>
>> https://openjdk.org/jeps/463
>>
>>   Summary: Evolve the Java programming language so that students can
>>   write their first programs without needing to understand language
>>   features designed for large programs. Far from using a separate dialect
>>   of the language, students can write streamlined declarations for
>>   single-class programs and then seamlessly expand their programs to use
>>   more advanced features as their skills grow. This is a preview language
>>   feature.
>>
>> - Mark
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jdk-dev/attachments/20231101/0d1e2677/attachment.htm>


More information about the jdk-dev mailing list