> On Feb 23, 2017, at 1:34 PM, Joanna Carter <joa...@carterconsulting.org.uk> 
> wrote:
> 
> 
>> Le 23 févr. 2017 à 14:59, Matthew Johnson <matt...@anandabits.com> a écrit :
>> 
>> The rationale for this is that it allows you to explore the eventual design 
>> of a type without exposing it.  When you are confident in the design all you 
>> need to does modify the access modifier of the type itself.  Without this 
>> capability people might resort to comments indicating the intended future 
>> visibility and then have to remember to go back and convert all of those 
>> comments into the new access modifier when you’re ready to publish the type.
> 
> I suppose I can understand that but...
> 
> Certainly you can check that everything compiles but how does it help if you 
> want to test the code does what you expect? What about testing the validity 
> of inheritance controls?
> 
> Personally, I test new ideas in a "side" project before integrating into the 
> main project. That say, I get to develop everything at the correct 
> visibilities and with everything ready to just copy and paste to the main 
> project.

Sometimes APIs are used internally in production while eventually planned for 
public visibility.  New features in Apple’s frameworks often start life this 
way.

> 
>> The important thing to keep in mind is that software isn’t a fixed, static 
>> thing.  It evolves over time.  This is a tool to help grow software over 
>> time.
> 
> After over 25 years of developing software and teaching others, I have never 
> heard of such a justification of such a mish-mash of visibilities. This might 
> seem like a good idea for testing but, what about the effect of it on real 
> development where inexperienced developers keep on finding that visibilities 
> that are "possible" don't actually work?

I don’t have a strong feeling about this particular capability.  I’m just 
trying to state the rationale as I understand it.

> 
> --
> Joanna Carter
> Carter Consulting
> 

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

Reply via email to