<div dir="ltr"><div class="gmail_default" style="font-family:monospace">Hello,</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">Thank you for reaching out!<br></div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">I'm pretty sure that the amber-dev mailing list is not the correct place for this type of question. This topic usually goes on at the following mailing list instead. I've CC'd it for you. I would also encourage you to remove amber-dev from your CC when responding to me, or anyone else on this thread.<br></div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace"><a href="mailto:discuss@openjdk.org">discuss@openjdk.org</a></div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">To answer your question, this is a very common request, and the biggest answer is definitely still the backwards compatibility problem. But tbh, the question I have for you is this -- is it such a big cost to call the o1.equals(o2) method instead of using ==? And if you want to handle nulls too, you can import java.util.Objects (that class is full of useful static utility methods) and then just say Objects.equals(o1, o2) instead. I am pretty sure that that exact method was created in response to your exact question.<br></div><div><br></div><div><div style="font-family:monospace" class="gmail_default">I understand it might be inconvenient, but making a change like you suggested would be very disruptive for very little benefit. All you would gain from doing this would be a slightly better syntax for representing object equality and a little more ease when it comes to teaching somebody Java. Is that really worth the effort?</div></div><div><br></div><div><div style="font-family:monospace" class="gmail_default">As for the class-file api, I'll CC them so that someone can fact check me. Assuming I'm not wrong (no one responds to that point specifically), I would also drop that mailing list from your CC when responding.</div><div style="font-family:monospace" class="gmail_default"><br></div><div style="font-family:monospace" class="gmail_default">The purpose of the Class-File API was to build and transform class files. So that seems unrelated to what you want. You want to repurpose old syntax, but syntax stops being relevant after compilation, and it is these compiled class files that the Class-File API deals in. If we tried to use that API to handle class files created with the old syntax, then we would have a migration and clarity problem, amongst much more.<br></div></div><div><br></div><div><div style="font-family:monospace" class="gmail_default">Let us know if you have any more questions.<br></div></div><div><br></div><div><div style="font-family:monospace" class="gmail_default">Thank you for your time!</div><div style="font-family:monospace" class="gmail_default">David Alayachew<br></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 22, 2023 at 2:12 PM tzengshinfu <<a href="mailto:tzengshinfu@gmail.com">tzengshinfu@gmail.com</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"><div dir="ltr"><p style="border:0px solid rgb(217,217,227);box-sizing:border-box;margin:0px 0px 1.25em;color:rgb(55,65,81);font-family:Söhne,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:16px;background-color:rgb(247,247,248)">Hi, folks:<br></p><p style="border:0px solid rgb(217,217,227);box-sizing:border-box;margin:1.25em 0px;color:rgb(55,65,81);font-family:Söhne,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:16px;background-color:rgb(247,247,248)">When I switched my primary programming language from C# to Java, I found myself perplexed by 'string comparison' (and still do at times). While string comparisons can sometimes become quite intricate, involving issues like case sensitivity, cultural nuances... most of the time, all that's needed is string1 == string2.</p><p style="border:0px solid rgb(217,217,227);box-sizing:border-box;margin:1.25em 0px;color:rgb(55,65,81);font-family:Söhne,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:16px;background-color:rgb(247,247,248)">I discovered that a similar question was asked a decade ago (<a href="https://www.reddit.com/r/java/comments/1gjwpu/will_the_equals_operator_ever_be_fixed_with/" style="border:0px solid rgb(217,217,227);box-sizing:border-box;text-decoration-line:none" target="_blank">https://www.reddit.com/r/java/comments/1gjwpu/will_the_equals_operator_ever_be_fixed_with/</a>), with responses indicating that it's due to 'Backward compatibility,' and therefore, unlikely to change.
(Backward compatibility! We just keep piling new things on top of historical baggage, and for users coming from school or from other languages like C#, Python, C++, Rust, Golang, Kotlin, Scala, JavaScript, PHP, Rlang, Swift, Ruby, Dart... the top 20 languages according to PYPL, having to consult the so-called 'Java FAQ' can be frustrating.</p><p style="border:0px solid rgb(217,217,227);box-sizing:border-box;margin:1.25em 0px 0px;color:rgb(55,65,81);font-family:Söhne,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:16px;background-color:rgb(247,247,248)">But I believe that if something is amiss, it should be corrected to keep moving forward. It would be fantastic if this issue could be addressed in a new version of Java and an automatic conversion feature provided to fix places in user code that use String.equals.
(Similar to the JVM's preview feature switch)
Is the Class-File API a potential solution to this problem? Is my idea unrealistic?</p><p style="border:0px solid rgb(217,217,227);box-sizing:border-box;margin:0px 0px 1.25em;color:rgb(55,65,81);font-family:Söhne,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:16px;background-color:rgb(247,247,248)">
</p><div><div dir="ltr" class="gmail_signature">/* GET BETTER EVERY DAY */<br></div></div></div></div>
</blockquote></div>