[swift-evolution] [Pitch] Make the first parameter in a function declaration follow the same rules as the others
Jordan Rose
jordan_rose at apple.com
Tue Mar 15 11:41:39 CDT 2016
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.
Still, the conclusions I would draw from this are that the vast majority of methods fall into one of the three following categories:
- No arguments.
- Empty first argument label.
- First argument label that does not match the parameter name.
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 don't make the "matching" case more important; they only make the "no label" case less important.
Jordan
> On Mar 14, 2016, at 20:30 , Shawn Erickson <shawnce at gmail.com> wrote:
>
>
>
> On Mon, Mar 14, 2016 at 8:05 PM Jordan Rose <jordan_rose at apple.com <mailto:jordan_rose at apple.com>> wrote:
> Ah, this doesn't distinguish
>
> func foo(bar baz: Int)
>
> from
>
> func foo(bar bar: Int)
>
> That's pretty important for this discussion.
>
> (Thanks for actually doing this! I just let it drop last week.)
>
> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
> [0:574]> grep -R "func [A-Za-z0-9]*(\([A-Za-z0-9]*\) \1:" Platforms/ | wc -l
> 274
>
> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
> [0:579]> grep -R "func [A-Za-z0-9]*(\([A-Za-z0-9]*\) \1:" Platforms/ | head -5
> Platforms//iOS/AssetsLibrary/ALAssetRepresentation.swift: func cgImage(options options: [NSObject : AnyObject]! = [:]) -> Unmanaged<CGImage>!
> Platforms//iOS/CloudKit/CKContainer.swift: func accountStatus(completionHandler completionHandler: (CKAccountStatus, NSError?) -> Void)
> Platforms//iOS/CloudKit/CKContainer.swift: func fetchUserRecordID(completionHandler completionHandler: (CKRecordID?, NSError?) -> Void)
> Platforms//iOS/CloudKit/CKContainer.swift: func discoverAllContactUserInfos(completionHandler completionHandler: ([CKDiscoveredUserInfo]?, NSError?) -> Void)
> Platforms//iOS/CloudKit/CKDatabase.swift: func fetchAllRecordZones(completionHandler completionHandler: ([CKRecordZone]?, NSError?) -> Void)
>
>
>> On Mar 14, 2016, at 16:01 , Shawn Erickson via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>> 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.
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:554]> grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* [A-Za-z0-9]*:" Platforms/ | wc -l
>> 10587
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:555]> grep -R "func [A-Za-z0-9]*(_ [A-Za-z0-9]*:" Platforms/ | wc -l
>> 21654
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:556]> grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* _:" Platforms/ | wc -l
>> 0
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:557]> grep -R "func [A-Za-z0-9]*([A-Za-z0-9]*:" Platforms/ | wc -l
>> 14
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:558]> grep -R "func [A-Za-z0-9]*()" Platforms/ | wc -l
>> 7190
>>
>> ----
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:559]> grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* [A-Za-z0-9]*:" SampleCode/ | wc -l
>> 12
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:560]> grep -R "func [A-Za-z0-9]*(_ [A-Za-z0-9]*:" SampleCode/ | wc -l
>> 0
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:561]> grep -R "func [A-Za-z0-9]*([A-Za-z0-9]* _:" SampleCode/ | wc -l
>> 0
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:562]> grep -R "func [A-Za-z0-9]*([A-Za-z0-9]*:" SampleCode/ | wc -l
>> 512
>>
>> [shawnce:~/Downloads/swift-3-api-guidelines-review-swift-3]
>> [0:563]> grep -R "func [A-Za-z0-9]*()" SampleCode/ | wc -l
>> 221
>>
>>
>> On Mon, Mar 14, 2016 at 3:28 PM Dave Abrahams via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>> on Sun Mar 13 2016, Shawn Erickson <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>> > On Fri, Mar 11, 2016 at 1:30 PM Dave Abrahams via swift-evolution <
>> > swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> >
>> >>
>> >> Anyone who wants to measure is free to do so: simple regexps and wc
>> >> generally work for this purpose.
>> >>
>> >>
>> >> https://github.com/apple/swift-3-api-guidelines-review/tree/swift-3/Platforms <https://github.com/apple/swift-3-api-guidelines-review/tree/swift-3/Platforms>
>> >>
>> >
>> > Not sure if anyone actually got around to this so doing a basic set of
>> > regex (includes class functions and overrides)...
>> >
>> > func foo(bar baz:Baz... ---> 10544
>> > func foo(baz:Baz... ---> 526
>> > func foo(_:Baz... ---> 92
>> > func foo() ---> 7392
>>
>> Are you certain? Last we checked it was about 50/50 between having and
>> not-having a distinct argument label.
>>
>> --
>> -Dave
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160315/a2f6a9e2/attachment.html>
More information about the swift-evolution
mailing list