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
