I disagree with that as well as I still think we are damaging the language each 
time we take a known concept (like access levels) and give new meanings to the 
same keywords. I still look baffled at the redefinition of do and the addition 
of repeat for example...

Private, the way it was before, was an admittedly curious take on how most 
languages mean by private and we have jumped through a lot of hoops to justify 
why we did not start with Java/C++/C# like access control and augmented it 
instead of redefining things, omitting others, and then constantly pulling the 
language left and right with not a lot of permanent consensus either way as 
this discussion and others before show.

Sent from my iPhone

> On 14 Feb 2017, at 08:05, David Hart <[email protected]> wrote:
> 
> 
>> On 14 Feb 2017, at 08:28, Goffredo Marocchi <[email protected]> wrote:
>> 
>> I personally think that removing file private by itself does not solve the 
>> issue. We either put it all up for change (permissions levels and axis 
>> systems... including unsubclassable outside the module by default, warnings 
>> about overriding a default method only define in the protocol) and we look 
>> at a holistic situation admitting that what we have is not perfect or we 
>> just risk damaging the language over religious fronts that each declare to 
>> be Swiftier than the other.
> 
> Just to make it clear, I’m not suggesting removing fileprivate the 
> access-level but fileprivate the keyword, and go back to Swift 2’s private. I 
> honestly think its not that bad. As Xiaodi said it much better than me in 
> another thread:
> 
> The beauty of Swift 2's access modifiers was that they were based around 
> files and modules, explicitly rejecting types and scopes as units for 
> determining visibility. It seems at base there's a group of people who reject 
> that decision altogether. […] The point of the other thread was that a 
> sizable proportion of people are finding the old system to be elegant and a 
> suitable basis for future enhancements such as submodules. Here, there's 
> another proportion of people who want to dismantle the old design completely. 
> […] At some point, we've got to stop relitigating this design.
> 
> If we remove scope-based private, we are back in a simpler and elegant world 
> of file/module scope.
> 
>> We cannot just address every bit of things with a very specific and 
>> restrictive language feature unless we want to go to the C++ language 
>> lawyers land for real.
>> 
>> Sent from my iPhone
>> 
>>> On 14 Feb 2017, at 07:08, David Hart via swift-evolution 
>>> <[email protected]> wrote:
>>> 
>>> 
>>>> On 14 Feb 2017, at 07:06, Chris Lattner via swift-evolution 
>>>> <[email protected]> wrote:
>>>> 
>>>> 
>>>>> On Feb 12, 2017, at 12:35 PM, Xiaodi Wu <[email protected]> wrote:
>>>>> 
>>>>> _Potentially_ meaningful, certainly. But what I'm hearing is that it 
>>>>> isn't actually meaningful.
>>>> 
>>>> Yes, for sure.  That was carefully worded :-)
>>>> 
>>>>> Here's why:
>>>>> 
>>>>> If I see `fileprivate` and can understand that to mean "gee, the author 
>>>>> _designed_ this member to be visible elsewhere inside the file," then 
>>>>> it's actually meaningful. OTOH, if I see `fileprivate` and can only 
>>>>> deduce "gee, the author mashed some button in his or her IDE," then it's 
>>>>> not really telling me anything.
>>>>> 
>>>>> What you've said above, as I understand it, is that it's not currently 
>>>>> meaningful to see `fileprivate` because the migrator is writing it and 
>>>>> not the author. The improved approach you proposed is the additional 
>>>>> warning. In that case, the compiler will help to ensure that when I see 
>>>>> `fileprivate`, at least I know it's necessary. But that's only telling me 
>>>>> a fact (this member is accessed at least once outside the private scope), 
>>>>> but it's still machine-based bookkeeping, not authorial intent.
>>>> 
>>>> I see what you’re saying, but from a mechanical perspective, I disagree: 
>>>> seeing fileprivate in this (theoretical) world would be more meaningful 
>>>> than seeing private, because you know that there must be something in an 
>>>> extension that uses the member.
>>>> 
>>>> That said, whether it is meaningful or not is really not the question.  
>>>> Assuming you agree that it would carry “some” meaning, the question is 
>>>> really whether or not that meaning carries its own weight in terms of 
>>>> complexity in the language footprint.  I tend to think “no”.
>>>> 
>>>> If you agree with “no", then Swift 4.x should eradicate fileprivate as a 
>>>> concept and that we should revert SE-0025 from Swift 4 mode.  What to do 
>>>> with Swift 3.x still hangs in the balance of course.
>>> 
>>> Wouldn't 3.x mode just warn of the future deprecation?
>>> 
>>> Xiaodi: I'd be very tempted to write a proposal myself to revert SE-0025. 
>>> But it's going to be unpopular and I don't feel like I have the same ease 
>>> as you do to make the necessary points eloquently to convince as many 
>>> people as possible. Do you have the time to write it? If not, I'd really 
>>> appreciate some input from you: your points in this and the other thread 
>>> have always matched mine but were much better expressed :)
>>> 
>>>> -Chris 
>>>> 
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> [email protected]
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>> _______________________________________________
>>> swift-evolution mailing list
>>> [email protected]
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to