-1 On the group as-is. I do not believe all of these classes have the behavior 
that would be expected if ‘foundation’ were a from-scratch foundational library 
for Swift (as it exists on non Apple platforms). This will lock Swift into an 
evolutionary path for these types going forward.

There is enough here that I will just pick one example to focus on - 
NSCoding/NSCoder, and elements I would suspect from such a from-scratch design

- Coding would incorporate SecureCoding into its design (I did not see 
NSSecureCoding even on the list of protocols to get the prefix dropped)
- Archiver/Unarchiver would not exist; we would only have keyed versions
- Coder would be a split in half to Coder and Decoder
- Coder and Decoder would be protocols
- The Coder protocol might have a single method, encode(value:Coding, 
forKey:String)
- The Decoder protocol might single method, <T:Coding> decode(type:T.Type, 
forKey: String) -> T?
- Compiler generation of a default Coding implementation

And possibly more such as:
- Add Coders limited to trees of objects vs graphs, to allow the Coder/Decoder 
protocols to be used for more intuitive JSON/XML representations
- Custom/specific assignment operator for Decoder to capture desired type 
without requiring said type to be specified in decode(type:forKey:) calls

-DW

> On May 6, 2016, at 2:52 PM, Tony Parker via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Hi everyone,
> 
> Thanks to all of you for your feedback on SE-0069 (Foundation Value Types). 
> I’m back again with more information on another part of our plan to integrate 
> Foundation API into Swift: dropping the NS prefix.
> 
> When we originally proposed this as part of the API guidelines document 
> (SE-0023, 
> https://github.com/apple/swift-evolution/blob/master/proposals/0023-api-guidelines.md
>  
> <https://github.com/apple/swift-evolution/blob/master/proposals/0023-api-guidelines.md>),
>  we took a very broad approach to which classes would drop their prefix. This 
> time, we’ve narrowed the scope considerably, plus taken advantage of the 
> ability to nest types inside classes to further reduce the possibility of 
> introducing conflicting names.
> 
> I’ve written up a draft of the proposal, which includes an extensive section 
> on motivation plus a list of changes. Please take a look and let me know what 
> you think. We’ll start a formal review period soon.
> 
> https://github.com/parkera/swift-evolution/blob/parkera/drop_ns/proposals/NNNN-drop-foundation-ns.md
>  
> <https://github.com/parkera/swift-evolution/blob/parkera/drop_ns/proposals/NNNN-drop-foundation-ns.md>
> 
> Thanks again for your help,
> - Tony
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to