I am way late, but I share Brent’s concerns. I don’t think this addresses the 
very common case of “getting a String out of a heterogeneous dictionary”.

let name = plist[“name”] as! String

becomes one of these:

let name = plist[“name”] as! NSString as String
let name = String(plist[“name”] as! NSString)
let name = String(forceBridging: plist[“name”]) // not in the proposal

none of which I’m particularly happy with. 

Jordan


> On May 19, 2016, at 02:31, Brent Royal-Gordon via swift-evolution 
> <[email protected]> wrote:
> 
>>      * What is your evaluation of the proposal?
> 
> The review is technically over, but I don't believe a decision has been 
> announced yet, so...
> 
> I am generally in favor, but I have a serious concern about the readability 
> of certain conversions with this change. To wit, conversions like these:
> 
>       myArray as! [NSView]
>       myDictionary as! [String: NSView]
> 
> Are about to become something more like these:
> 
>       [NSView](forcedLazyBridging: myArray)
>       [String: NSView](forcedLazyBridging: myDictionary)
>       
> Or these:
> 
>       Array<NSView>(forcedLazyBridging: myArray)
>       Dictionary<String, NSView>(forcedLazyBridging: myDictionary)
> 
> Either option is a significant regression in code readability compared to the 
> status quo.
> 
> It's enough to make me wonder if we shouldn't have special-cased conversion 
> methods for NSArray, NSDictionary, and NSSet:
> 
>       myArray.of(NSView)                              // returns [NSView]
>       myDictionary.of(NSView, for: String)    // returns [String: NSView]
>       mySet.of(NSView)                                        // returns 
> Set<NSView>
> 
> On the other hand, if you *don't* have to specify an element type, these 
> aren't so bad:
> 
>       Array(forcedLazyBridging: myArray)
>       Dictionary(forcedLazyBridging: myDictionary)
> 
> And it gets even better if you use something a little saner than 
> `forcedLazyBridging` for the label.
> 
>>      * Is the problem being addressed significant enough to warrant a change 
>> to Swift?
> 
> Yes. Conversions are a mess, and it'll be nice to clean them up.
> 
>>      * Does this proposal fit well with the feel and direction of Swift?
> 
> Yes.
> 
>>      * If you have used other languages or libraries with a similar feature, 
>> how do you feel that this proposal compares to those?
> 
> Most languages I've used have had much simpler cast systems with nothing 
> particularly close to Swift's bridging casts.
> 
>>      * How much effort did you put into your review? A glance, a quick 
>> reading, or an in-depth study?
> 
> Quick reading.
> 
> -- 
> Brent Royal-Gordon
> Architechies
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to