[swift-evolution] [Review] SE-0005 Better Translation of Objective-C APIs Into Swift

Dave Abrahams dabrahams at apple.com
Tue Jan 26 15:57:30 CST 2016


Thanks for your review, Jacob—

on Sat Jan 23 2016, Jacob Bandes-Storch <swift-evolution at swift.org> wrote:

> Proposal link:
> https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md
>
>> What is your evaluation of the proposal?
>
> I would really appreciate seeing what *all* of the Foundation/Cocoa/Cocoa
> Touch APIs would look like when imported using this scheme. If we're going
> to bikeshed API translation, we should bikeshed all of it to avoid
> inconsistency. (It may be that some issues aren't resolvable with the
> simple rules proposed, and instead we should improve the API overlays.)
>
> Some specific concerns:
>
>      func *reversing()* -> UIBezierPath
>
> I believe this would be better named *reversed()*.

It certainly would.  I wonder if it's possible for us to tune the
heuristics accordingly, and how many other places that might fix.  My
research tells me this is a one-off problem that probably should be
handled “on a per-API basis via annotation within the Objective-C
headers”
(c.f. https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md#proposed-solution)

  $ git grep -nHE -e 'func [a-z]*ing\>\(\)' | grep -v 'string()'
  ../../Platforms/OSX/DiscRecording.swift:678:  func encoding() -> UInt
  ../../Platforms/OSX/Quartz.swift:1822:  func mirroring() -> Bool
  ../../Platforms/OSX/SceneKit.swift:4762:  class func spring() -> SCNPhysicsField
  ../../Platforms/OSX/WebKit.swift:340:  func padding() -> String!
  ../../Platforms/iOS/SceneKit.swift:4474:  class func spring() -> SCNPhysicsField
  ../../Platforms/iOS/UIKit.swift:2237:  func reversing() -> UIBezierPath
  ../../Platforms/tvOS/SceneKit.swift:4474:  class func spring() -> SCNPhysicsField
  ../../Platforms/tvOS/UIKit.swift:1723:  func reversing() -> UIBezierPath
  ../../Platforms/watchOS/UIKit.swift:424:  func reversing() -> UIBezierPath

Except for reversing, these are all fine AFAICT.

>     var *dateComponentUndefined*: Int { get }
>
> It seems pretty weird to have a global/top-level constant that starts with
> a lowercase letter, 

I get that.  Starting with lowercase is in conformance with the
guidelines as written, FWIW.

> and whose first 2 subwords are describing its type.

That's compensating for weak type information.

>     class func *darkGray*() -> UIColor
>
> I would rather see this imported as `class var *DarkGray*: UIColor { get }`.

Why should we capitalize some vars and not others?

> Otherwise, I'm okay with the proposed changes. I really like the "Add
> Default Arguments" section. :-)
>
>> Is the problem being addressed significant enough to warrant a change to
> Swift?
>
> Yes. The (current) majority of Swift users are writing software for Apple
> platforms, so they interact constantly with Obj-C APIs such as these.
>
>> How much effort did you put into your review? A glance, a quick reading,
> or an in-depth study?
>
> Fairly in-depth.
>
> Jacob
>
> On Fri, Jan 22, 2016 at 1:02 PM, Douglas Gregor via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> Hello Swift community,
>>
>> The review of SE-0005"Better Translation of Objective-C APIs Into Swift"
>> begins now and runs through January 31, 2016. The proposal is available
>> here:
>>
>>
>> https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md
>>
>> Reviews are an important part of the Swift evolution process. All reviews
>> should be sent to the swift-evolution mailing list at
>>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>> or, if you would like to keep your feedback private, directly to the
>> review manager. When replying, please try to keep the proposal link at the
>> top of the message:
>>
>> Proposal link:
>>
>>
>> https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md
>>
>> Reply text
>>
>> Other replies
>>
>> <https://github.com/apple/swift-evolution#what-goes-into-a-review-1>What
>> goes into a review?
>>
>> The goal of the review process is to improve the proposal under review
>> through constructive criticism and, eventually, determine the direction of
>> Swift. When writing your review, here are some questions you might want to
>> answer in your review:
>>
>>    - What is your evaluation of the proposal?
>>    - Is the problem being addressed significant enough to warrant a
>>    change to Swift?
>>    - Does this proposal fit well with the feel and direction of Swift?
>>    - If you have used other languages or libraries with a similar
>>    feature, how do you feel that this proposal compares to those?
>>    - How much effort did you put into your review? A glance, a quick
>>    reading, or an in-depth study?
>>
>> More information about the Swift evolution process is available at
>>
>> https://github.com/apple/swift-evolution/blob/master/process.md
>>
>> Thank you,
>>
>> -Doug Gregor
>>
>> Review Manager
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-- 
-Dave



More information about the swift-evolution mailing list