> On Mar 30, 2017, at 2:03 PM, Louis D'hauwe via swift-evolution 
> <[email protected]> wrote:
> 
> Apple frameworks contain prefixes, carried over from Objective-C.
> These exist to prevent class and method name collisions.
> 
> Mattt Thompson has a great article about this, containing the following 
> brilliant excerpt:
> "Namespacing is the preeminent bugbear of Objective-C. A cosmetic quirk with 
> global implications, the language’s lack of identifier containers remains a 
> source of prodigious quantities of caremad for armchair language critics." 
> (http://nshipster.com/namespacing/)
> 
> Since Swift can handle with these naming conflicts, wouldn't it make sense to 
> drop all framework prefixes in a Swift environment?
> 
> A classic example is UIKit, where all classes are prefixed with "UI". 
> Code example:
> 
>     import UIKit
> 
>     class FooViewController: UIViewController {
>       
>     }
> 
> Dropping the prefix would simply lead to the following:
> 
>     import UIKit
> 
>     class FooViewController: ViewController {
>       
>     }
> 
> Since conflicts need to be handled by specifying the module name, the 
> following could be used if "ViewController" was also used by either some, 
> other than UIKit, imported framework or by a user defined class:
> 
>     import UIKit
> 
>     class FooViewController: UIKit.ViewController {
>       
>     }
> 
> "UIKit.ViewController" is of course quite longer than the current 
> "UIViewController".
> An improvement could be to allow frameworks to specify an abbreviated form.
> UIKit could define "UI" as its abbreviation, making the following code valid:
> 
>     import UI
> 
>     class FooViewController: UI.ViewController {
>       
>     }
> 
> This all seems to me like a natural continuation of SE-0086.
> I do realise this would be a major change, breaking pretty much every Swift 
> iOS, macOS, tvOS and watchOS project.
> But in the long term, I think it's worth it.

The teams at Apple own how their APIs get reflected in Swift. This is outside 
the scope of swift-evolution.

-Joe
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to