<div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 8, 2024 at 9:24 AM Ethan McCue <<a href="mailto:ethan@mccue.dev" target="_blank">ethan@mccue.dev</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 dir="ltr">The *goal* is seems more akin to "improve the experience of learning and teaching java as a first language".<br></div></blockquote><div><div><br></div><div>You make good points - but that kind-of implies that we need to first conduct a pedagogical debate to establish what we think is the "correct" way to teach the Java programming language. Only then would we be able to properly design features to support that goal. Of course I'm putting "correct" in air quotes because that's probably not a resolvable debate.<br></div><div><br></div><div>I don't want to have that debate (I'm not a teacher), but I can speak from personal experience. I understand things best when I can focus on learning one self-consistent, well-defined layer of abstraction at a time. Once each layer is mastered, you can then have the "big reveal" of the next layer underneath ("opening the hood)" and then learn how that next layer supports the one above that you already know and understand. Then, rinse & repeat.<br></div><div><br></div><div>You can also go in the other direction, i.e., from the bottom up. For example, you might learn digital logic, then counters & flip flops, then adding and shifting, then instruction fetch, then CPU's, then assembly language, then memory management, then operating systems, then C/C++, then Java, etc. etc.<br></div><div><br></div><div>The "on-ramp" metaphor instead implies you are learning one big layer of abstraction by gradually reducing the number of "simplifying tricks", so the complexity increases step-by-step. The layer of abstraction you start with is a simplified mirage that keeps changing over time. I'm sure that can work too, but it's a different way of teaching and learning & because it seems weird to me it probably works better in practice :)<br></div><div><br></div><div>I'm definitely NOT anti-JEP 495. My point is simply that if the goal is "improve the experience of learning and teaching java as a first language" then that implies some presumptions about how that teaching will be conducted, and it's worth pondering those presumptions. If all the CS teachers of the world are united in saying "this is how we do it" then that's probably sufficient.<br></div></div><div><br></div><div>-Archie</div><div><br></div></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">Archie L. Cobbs<br></div></div>
</div>