On Wed, Aug 9, 2017, at 08:42 PM, Jordan Rose via swift-evolution wrote:> - Consistency: switches on an enum in the same module can always be > exhaustive, so having it be different across modules is a bit > annoying. (But 'public' already acts like this.) >From someone frequently working on teams or unfamiliar codebases, it’s really heard to know whether “default: fatalError()” is a smell or not without memorizing the surface area of every API your app works with. > … That brings us to one more concern: how different should binary > frameworks be from source frameworks? As few as possible. Realistically, I understand there must be some, but I feel like they need to be there for awfully good reasons. The differences between app targets, framework/library targets, and playgrounds feel arbitrary unless you understand parts of the language very fully. Some debugging techniques (or even just saving-time-rebuilding techniques) involve using a binary framework and swapping it for another binary with extra instrumentation or a source version for full instrumentation, or vice-versa as you ossify a PoC feature into being production-ready. It would be awful to break source compatibility as this happens because an API you’re consuming changes behavior according to the compiler. (I can hear my graybeard coworkers already - “It’s the same code!”) Sincerely, Zachary Waldowski z...@waldowski.me
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution