<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=""><div class="">Thank you! I realized one other potential flaw in the data-gathering: your search for "func foo(_ bar" will match both Objective-C methods and C functions. I'm not sure CF should really be contributing to the scores. Unfortunately the main way I can think of to differentiate them is by indentation, which seems a little sketchy.</div><div class=""><br class=""></div><div class="">Still, the conclusions I would draw from this are that the <i class="">vast</i>&nbsp;majority of methods fall into one of the three following categories:</div><div class=""><br class=""></div><div class="">- No arguments.</div><div class="">- Empty first argument label.</div><div class="">- First argument label that does not match the parameter name.</div><div class=""><br class=""></div><div class="">This doesn't mean we shouldn't change the convention—"_ completionHandler" is much easier to type than "completionHandler completionHandler", and it's still removing complexity—but it does mean (to me) that the new API naming guidelines <i class="">don't</i>&nbsp;make the "matching" case more important; they only make the "no label" case <i class="">less</i>&nbsp;important.</div><div class=""><br class=""></div><div class="">Jordan</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 14, 2016, at 20:30 , Shawn Erickson &lt;<a href="mailto:shawnce@gmail.com" class="">shawnce@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Mar 14, 2016 at 8:05 PM Jordan Rose &lt;<a href="mailto:jordan_rose@apple.com" class="">jordan_rose@apple.com</a>&gt; wrote:<br class=""></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=""><div class="">Ah, this doesn't distinguish</div><div class=""><br class=""></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px" class=""><div class="">func foo(bar baz: Int)</div></blockquote><div class=""><br class=""></div>from<div class=""><br class=""></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px" class=""><div class="">func foo(bar bar: Int)</div></blockquote><div class=""><br class=""></div><div class="">That's pretty important for this discussion.</div><div class=""><br class=""></div><div class="">(Thanks for actually doing this! I just let it drop last week.)</div></div><div style="word-wrap:break-word" class=""><div class=""><div class=""><div class=""><blockquote type="cite" class=""><div class=""></div></blockquote></div></div></div></div></blockquote><div class=""><span class=""><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:574]&gt; grep -R "func [A-Za-z0-9]*(\([A-Za-z0-9]*\) \1:" Platforms/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp;274</div></span></div><div class=""><br class=""></div><div class=""><span class=""><span class=""><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:579]&gt; grep -R "func [A-Za-z0-9]*(\([A-Za-z0-9]*\) \1:" Platforms/ | head -5</div><div class="">Platforms//iOS/AssetsLibrary/ALAssetRepresentation.swift: &nbsp;func cgImage(options options: [NSObject : AnyObject]! = [:]) -&gt; Unmanaged&lt;CGImage&gt;!</div><div class="">Platforms//iOS/CloudKit/CKContainer.swift: &nbsp;func accountStatus(completionHandler completionHandler: (CKAccountStatus, NSError?) -&gt; Void)</div><div class="">Platforms//iOS/CloudKit/CKContainer.swift: &nbsp;func fetchUserRecordID(completionHandler completionHandler: (CKRecordID?, NSError?) -&gt; Void)</div><div class="">Platforms//iOS/CloudKit/CKContainer.swift: &nbsp;func discoverAllContactUserInfos(completionHandler completionHandler: ([CKDiscoveredUserInfo]?, NSError?) -&gt; Void)</div><div class="">Platforms//iOS/CloudKit/CKDatabase.swift: &nbsp;func fetchAllRecordZones(completionHandler completionHandler: ([CKRecordZone]?, NSError?) -&gt; Void)</div><div class=""><br class=""></div></span></span><br class=""></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=""><div class=""><div class=""><div class=""><blockquote type="cite" class=""><div class="">On Mar 14, 2016, at 16:01 , Shawn Erickson via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><div dir="ltr" class=""><div class="">I could have easily screwed up my grep but doing spot checks on the resulting data sets I didn't spot an issue. I did make assumptions about how well formed the data set was.</div><div class=""><br class=""></div><div class=""><span class=""><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:554]&gt; grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* [A-Za-z0-9]*:" Platforms/ | wc -l</div><div class="">&nbsp; &nbsp;10587</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:555]&gt; grep -R "func [A-Za-z0-9]*(_ [A-Za-z0-9]*:" Platforms/ | wc -l</div><div class="">&nbsp; &nbsp;21654</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:556]&gt; grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* _:" Platforms/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp;0</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:557]&gt; grep -R "func [A-Za-z0-9]*([A-Za-z0-9]*:" Platforms/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp; 14</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:558]&gt; grep -R "func [A-Za-z0-9]*()" Platforms/ | wc -l</div><div class="">&nbsp; &nbsp; 7190</div><div class=""><br class=""></div></span></div><div class="">----</div><div class=""><br class=""></div><div class=""><span class=""><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:559]&gt; grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* [A-Za-z0-9]*:" SampleCode/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp; 12</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:560]&gt; grep -R "func [A-Za-z0-9]*(_ [A-Za-z0-9]*:" SampleCode/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp;0</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:561]&gt; grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* _:" SampleCode/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp;0</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:562]&gt; grep -R "func [A-Za-z0-9]*([A-Za-z0-9]*:" SampleCode/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp;512</div><div class=""><br class=""></div><div class="">[shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]</div><div class="">[0:563]&gt; grep -R "func [A-Za-z0-9]*()" SampleCode/ | wc -l</div><div class="">&nbsp; &nbsp; &nbsp;221</div></span><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Mar 14, 2016 at 3:28 PM Dave Abrahams via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="">
on Sun Mar 13 2016, Shawn Erickson &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:<br class="">
<br class="">
&gt; On Fri, Mar 11, 2016 at 1:30 PM Dave Abrahams via swift-evolution &lt;<br class="">
&gt; <a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:<br class="">
&gt;<br class="">
&gt;&gt;<br class="">
&gt;&gt; Anyone who wants to measure is free to do so: simple regexps and wc<br class="">
&gt;&gt; generally work for this purpose.<br class="">
&gt;&gt;<br class="">
&gt;&gt;<br class="">
&gt;&gt; <a href="https://github.com/apple/swift-3-api-guidelines-review/tree/swift-3/Platforms" rel="noreferrer" target="_blank" class="">https://github.com/apple/swift-3-api-guidelines-review/tree/swift-3/Platforms</a><br class="">
&gt;&gt;<br class="">
&gt;<br class="">
&gt; Not sure if anyone actually got around to this so doing a basic set of<br class="">
&gt; regex (includes class functions and overrides)...<br class="">
&gt;<br class="">
&gt; func foo(bar baz:Baz... ---&gt; 10544<br class="">
&gt; func foo(baz:Baz... ---&gt; 526<br class="">
&gt; func foo(_:Baz... ---&gt; 92<br class="">
&gt; func foo() ---&gt; 7392<br class="">
<br class="">
Are you certain?&nbsp; Last we checked it was about 50/50 between having and<br class="">
not-having a distinct argument label.<br class="">
<br class="">
--<br class="">
-Dave<br class="">
<br class="">
_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
</blockquote></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div></div></blockquote></div></div>
</div></blockquote></div><br class=""></body></html>