- Classes being "closed" by default is unusual in most OOP languages and allows for a careless developer to unknowingly write a library that restricts how it can be used by not making classes open as needed.
- Swift's distinction between file-private and declaration-private scopes is confusing (
fileprivateandprivateas of Swift 3) and completely unnecessary most of the time, since when one includes two top-level declarations in the same file, it's usually because the declarations are supposed to be visible to each other.
open: all declarations are implicitly open; noopenkeyword.final: inherits implicit visibility when none is specified.