> On Jun 29, 2016, at 11:06 AM, Xiaodi Wu <xiaodi...@gmail.com> wrote:
> 
> On Wed, Jun 29, 2016 at 11:03 AM, Matthew Johnson <matt...@anandabits.com 
> <mailto:matt...@anandabits.com>> wrote:
> 
>> On Jun 29, 2016, at 10:55 AM, Xiaodi Wu <xiaodi...@gmail.com 
>> <mailto:xiaodi...@gmail.com>> wrote:
>> 
>> On Wed, Jun 29, 2016 at 10:52 AM, Matthew Johnson via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>>wrote:
>> 
>>> On Jun 29, 2016, at 10:46 AM, Sean Heber <s...@fifthace.com 
>>> <mailto:s...@fifthace.com>> wrote:
>>> 
>>>> 
>>>> On Jun 29, 2016, at 10:22 AM, Matthew Johnson via swift-evolution 
>>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>>> 
>>>> 
>>>>> On Jun 29, 2016, at 10:08 AM, David Hart <da...@hartbit.com 
>>>>> <mailto:da...@hartbit.com>> wrote:
>>>>> 
>>>>> Sorry if I wasn’t expressing myself well enough. In my original email, I 
>>>>> said that:
>>>>> 
>>>>>> The new rules make `private` more prominent compared to `fileprivate` 
>>>>>> (the latter has a somewhat worse name).
>>>>> 
>>>>> So I agree that my issue is more with the naming than the functionality. 
>>>>> I’m mainly complaining that because of its name, `fileprivate` feels like 
>>>>> more of a special corner case of `private`. But in the style of writing 
>>>>> types through extensions, `fileprivate` will become much more prevalent 
>>>>> than `private`, which feels slightly backwards.
>>>> 
>>>> I don’t view it as more of a special corner case at all, but I can see why 
>>>> you feel that way since it has an unprecedented (AFAIK) and more verbose 
>>>> name.  
>>>> 
>>>> The proposal originally left `private` alone and used a new name for the 
>>>> new access level.  We weren’t able to find a name that didn’t have 
>>>> problems which led to the idea of renaming the existing `private`.
>>>> 
>>>> My perspective is that it’s just the best name we could come up with for 
>>>> the concept in the context of the various access levels we want to 
>>>> support.  The name isn’t intended to discourage use in any way.  
>>> 
>>> It may not be intended, but that doesn’t mean it won’t, though. :P
>>> 
>>> I can’t say exactly *why*, but I feel similar to David here in that 
>>> “fileprivate” is such an… odd… name that I’m inclined to just not use it 
>>> and let things default to “internal” instead. In fact, I have *already* 
>>> caught myself doing this. I don’t know if that’s *bad* exactly (would more 
>>> things being internal actually aid the compiler/optimizer?), 
>> 
>> I’m pretty sure more things being internal will not help the optimizer.  In 
>> fact, if you are not compiling with WMO turned on it could prevent 
>> optimizations.
>> 
>>> but I think this is a valid concern. The issue here is rooted in 
>>> psychology, not technology. :/
>> 
>> That’s a fair perspective.  But a *significant* amount of time was spent 
>> bike shedding this.  I’m not sure whether you and David participated or not, 
>> but that was the time to have the naming discussion.
>> 
>> I think the case being made here is that `fileprivate` was settled on when 
>> it was thought that it would be rarely used. With what's emerged in this 
>> discussion, it turns out that `fileprivate` might be more useful than 
>> previously thought, and the awkwardness of the name therefore is more 
>> troublesome than when the naming discussion first took place.
> 
> The example in this thread (placing data members in the type declaration and 
> methods in extensions) is one that received ample discussion during the 
> earlier threads and the review.
> 
> I don’t know that `fileprivate` will be used in code more commonly than 
> previously thought.  The issue is about the default access level of members 
> inside a `private` type (i.e. when access is *not* directly specified).  With 
> Jordan’s proposed solution, `fileprivate` will be used to describe these 
> members in documentation and diagnostics.  
> 
> It will also be possible to state this default explicitly, but I don’t think 
> that will be too common.  This is the only change in what is possible to do 
> *in code* from the original proposal.
> 
> You're adding words to my argument that I didn't put there. I didn't specify 
> "in code". Awkward is awkward, in code or in documentation.

That wasn’t intentional, sorry.  I misunderstood and thought you meant it would 
be used more frequently in code than previously thought.  Thanks for clarifying.

I certainly don’t oppose a better name if anyone can suggest one that is 
clearly better.  But I am skeptical that this is possible given the amount of 
bike shedding that has already happened.

>  
> 
>> 
>> 
>> IMO the value of having more control over visibility far outweighs a 
>> slightly awkward name for file level visibility.  I don’t think it’s 
>> anywhere near awkward enough to avoid, but I suppose YMMV.
>> 
>>> 
>>> l8r
>>> Sean
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to