[swift-evolution] Discussion: Why is "nil" not "none"

Jordan Rose jordan_rose at apple.com
Tue Jun 7 18:57:07 CDT 2016


There are NilLiteralConvertible types other than Optional, but they’re dwindling now that pointer nullability is represented by Optional. That said, I’m not convinced renaming “nil” is worth it at this point. Similarity with other languages is still a good thing.

It’s true that we might not have picked nil if it hadn’t been for Objective-C, but that doesn’t make it an invalid choice. There are lots of things in Swift we might have done differently if it weren’t for Objective-C and Cocoa.

Jordan


> On Jun 5, 2016, at 12:35, Brandon Knope via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Quick thought:
> 
> If optional has a .none case, wouldn't it be more consistent to rename nil to none?
> 
> Also, would nil make it into Swift if not for other languages?
> 
> It also might make it somewhat clearer:
> 
> var someInt: Int? = none //looks less like a pointer and more like a value of nothing 
> 
> 1. It is more consistent with the optional enum
> 2. The intent is arguably clearer
> 3. nil makes it seem like it's a pointer 
> 4. Would nil be included if not for prior languages? Would "none" have been chosen as the keyword if nil wasn't prior art?
> 
> One disadvantage is how close it is to .none, but with how common nil/none is used, some syntactic sugar might make it look nicer than always having the stray .
> 
> On vacation from Orlando, poolside, with a quick thought,
> Brandon 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list