I *don't* want dynamic calls to stand out. I want seamless interoperability.

let arrayOfDogs = [ Python.Module(dog).Dog("Brianna"), 
Python.Module(dog).Dog("Kevin") ] // Swift array of Python objects
let b = arrayOfDogs.sorted() // use Swift 'sort' function on Python objects 
(invoking Python '<' and '==' operators)
let c = arrayOfDogs.forEach { $0.bark() } // Swift 'forEach' calling Python 
'bark'
etc.


--
C. Keith Ray

* https://leanpub.com/wepntk <- buy my book?
* http://www.thirdfoundationsw.com/keith_ray_resume_2014_long.pdf
* http://agilesolutionspace.blogspot.com/

> On Dec 3, 2017, at 6:57 AM, Tino Heth via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>> What do you think about having a special method ‘dynamic' defined in this 
>> protocol, such that the compiler magic lookup behavior is only available 
>> when chained after that method?
> I guess „dynamic“ isn’t a common property name, but imho such magic doesn’t 
> feel right, even when there are no collisions in real-world code.
> 
>>      let y =  np^.arange?^(24)?^.reshape^?(2, 3, 4)!
> 
> That looks quite ugly… but imho that’s at least partially because of the 
> choice of character
> let y = np:arange?:reshape?:(2, 3, 4)!
> doesn’t seem to be as bad as the use of carets.
> 
> But still, you would have to jump through some hoops to use both kinds of 
> dispatch side by side (because you always have to think about how to call a 
> method).
> On the other hand, we also have &inoutParameter and try, which makes some 
> things less convenient — and I’d say that dynamic dispatch is somehow 
> comparable to inout-parameters (both shouldn’t be used if you can get around 
> it).
> 
> So, why do people want differentiate?
> I can see two major motivations for a different syntax:
> 
> a) you want to dynamic calls to stand out — which also could be done by tools:
>> let y =  np.arange?(24)?.reshape?(2, 3, 4)! // let the editor use a 
>> different font/color for non-static stuff
> 
> 
> b) you want to be sure that in a given situation, no dynamic dispatch is used 
> — which could be solved by keeping the dot as general way to call something, 
> and add an alternative that will only use static lookup
> 
> No matter what direction is taken here, imho this whole story has a really 
> gigantic impact on the shape of Swift, and I have strong concerns if the two 
> changes are reviewed in a normal way and added this year… there’s no 
> experience with the proposed changes yet, and afaics, it has become quite 
> hard to correct additions that turn out to be not as positive as expected.
> 
> - Tino
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> 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