[HN Gopher] OpenJDK mailing list: Null-safety and value types
       ___________________________________________________________________
        
       OpenJDK mailing list: Null-safety and value types
        
       Author : kaba0
       Score  : 16 points
       Date   : 2023-02-07 21:54 UTC (1 hours ago)
        
 (HTM) web link (mail.openjdk.org)
 (TXT) w3m dump (mail.openjdk.org)
        
       | topspin wrote:
       | I don't care how they get there, as long as they get there. In
       | this case they're realizing that NULL makes optimization
       | difficult and are swerving into solving this 27 year old instance
       | of the "billion-dollar mistake." NPEs shouldn't exist in work-a-
       | day code.
        
         | sam_lowry_ wrote:
         | What syntactic sugar they offer is not clear from the mail.
         | 
         | There are already lots of techniques, from annotations to
         | Optional.ofNullable but none matches the simplicity of != null.
         | 
         | They can also go the route of `effectively final` and make the
         | compiler deduce nullness instead of marking it explicitly.
        
           | yarg wrote:
           | There's not really a nice way of implementing the syntax
           | without changing the language.
           | 
           | Although perhaps they could resolve this with magic imports?
           | import java.lang.magic.optional;              public class
           | Foo{             public static void main(String...args){
           | Foo? f = ...;                 if(f){
           | f.doThings();                 }                 f.doThings();
           | //compile time error             }         }
           | 
           | The idea being that importing the magic class enables the
           | cleaner syntax.
        
         | yarg wrote:
         | I've alway felt "billion dollar mistake" is unreasonably
         | hyperbolic.
         | 
         | In retrospect it would be very nice to have a language level
         | ability to define something as optional, and require existence
         | checking for such values;
         | 
         | But it wasn't so obvious at the time.
        
           | highwind wrote:
           | I believe ML family of languages do not have null. And it was
           | developed well before Java. So I don't think timing was the
           | issue.
        
       | revskill wrote:
       | It's in correct direction to make nullness more explicit through
       | the type system.
        
       | mabbo wrote:
       | If I'm understanding this correctly, is the author saying that a
       | future version of Java may let me use `String! foo` and the
       | compiler will make sure this variable cannot be null?
       | 
       | That would be very helpful indeed.
        
       ___________________________________________________________________
       (page generated 2023-02-07 23:00 UTC)