I&#39;m not sure where you&#39;re reading that Chris thinks the current design reaches the stated aims to his satisfaction.<br><br>Again, I agree with the stated design goals for static/dynamic dispatch, but I don&#39;t think they&#39;ve been met.<br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 24, 2017 at 22:23 Drew Crawford &lt;<a href="mailto:drew@sealedabstract.com">drew@sealedabstract.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="gmail_msg"><div id="m_4978601495491502076bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg"><br class="gmail_msg"></div> <br class="gmail_msg"> <div id="m_4978601495491502076bloop_sign_1490411525347686912" class="m_4978601495491502076bloop_sign gmail_msg"></div> <br class="gmail_msg"><p class="m_4978601495491502076airmail_on gmail_msg">On March 24, 2017 at 10:11:07 PM, Xiaodi Wu (<a href="mailto:xiaodi.wu@gmail.com" class="gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>) wrote:</p> <div class="gmail_msg"><blockquote type="cite" class="m_4978601495491502076clean_bq gmail_msg" style="font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span class="gmail_msg"><div class="gmail_msg"><span style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline!important" class="gmail_msg">I agree absolutely with those aims: very predictable performance, expressive and clean model, simplified learning and common cases. I&#39;m arguing that the giant table of dispatch rules (see:<span class="m_4978601495491502076Apple-converted-space gmail_msg"> </span></span><a href="http://raizlabscom-wpengine.netdna-ssl.com/dev/wp-content/uploads/sites/10/2016/12/Summary-3.png" style="font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="gmail_msg" target="_blank">http://raizlabscom-wpengine.netdna-ssl.com/dev/wp-content/uploads/sites/10/2016/12/Summary-3.png</a><span style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline!important" class="gmail_msg">) does not reach that goal.</span></div></span></blockquote></div></div><div style="word-wrap:break-word" class="gmail_msg"><p class="gmail_msg">But clattner believes it does.  This is clearer in his original, which is why I quoted it:</p></div><div style="word-wrap:break-word" class="gmail_msg"><div class="gmail_msg"><blockquote type="cite" style="font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="gmail_msg"><span style="font-family:&#39;normal helvetica&#39;,sans-serif" class="gmail_msg">predictable performance model (someone writing a bootloader or firmware can stick to using Swift structs and have a simple guarantee of no dynamic overhead or runtime dependence)</span></blockquote></div></div><div style="word-wrap:break-word" class="gmail_msg"><p class="gmail_msg">(&quot;predictable performance&quot; to clattner means &quot;value types are direct&quot;)</p></div><div style="word-wrap:break-word" class="gmail_msg"><div class="gmail_msg"><blockquote type="cite" style="font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="gmail_msg">while also providing an expressive and clean high level programming model - simplifying learning and the common case where programmers don’t care to count cycles.</blockquote></div></div><div style="word-wrap:break-word" class="gmail_msg"><p class="gmail_msg">(&quot;simplifying the learning&quot; to clattner means that the programming model appears dynamic and the real performance characteristic is hidden.)</p><p class="gmail_msg">We know (because clattner told us here) what the design goal of Swift is with respect to static/dynamic dispatch.  You may not agree with it, but that is another issue.</p><div class="gmail_msg"></div><div class="gmail_msg"></div><div class="gmail_msg"></div></div></blockquote></div>