<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 &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; 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. &nbsp;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”. &nbsp;I submit for your consideration that there are lots and lots of ways that people can create poor APIs that hurt users. &nbsp;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. &nbsp;</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. &nbsp;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.&nbsp;</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. &nbsp;</div><div class=""><br class=""></div></body></html>