<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 4, 2017, at 1:42 AM, Vincent Esche via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span style="font-size:12.800000190734863px" class="">I think the argument basically is "let's not add another footgun" (because the design of Swift , for example regarding null handling, is to have less footguns than other languages). The fact that there are footguns in swift isn't an argument for adding new ones.</span></blockquote><div class=""><br class=""></div><div class="">Couldn’t have said it better. This is what it all boils down to.</div></div></div></blockquote></div><div class=""><br class=""></div><div class="">This is not a “footgun” in the traditional sense, because it does not affect someone who does not actively use it. It is not like UB in C.</div><div class=""><br class=""></div><div class="">The strongest your argument can be is “someone could use dynamic member lookup in their API to produce an API with a footgun that hurts their users”. I submit for your consideration that there are lots and lots of ways that people can create poor APIs that hurt users. If someone uses this feature inappropriately, then their API is crappy and you shouldn’t use it, just like any other misuse of languages features. </div><div class=""><br class=""></div><div class="">I also haven’t seen demonstration of an example where someone would non-maliciously [1] use it in an API, where it would cause harm, and what kind of harm that would be. You are creating a boogieman without taking any effort to explain the problem, so there is no way to do a cost benefit tradeoff analysis of whether the “benefit” of this feature is worth the “cost” that you claim exists. </div><div class=""><br class=""></div><div class="">I have said everything I intend to say about this topic.</div><div class=""><br class=""></div><div class="">-Chris</div><div class=""><br class=""></div><div class="">[1] Obviously if the API you are using was maliciously crafted, then you have tons of other problems. </div><div class=""><br class=""></div></body></html>