on Wed May 18 2016, Brent Royal-Gordon <[email protected]> wrote:
>>> If we're doing this, I wonder if category 1 shouldn't just be >> `Convertible`. This would preserve our `LiteralConvertible` >> protocols with the same names (which, consistency issues aside, seem >> perfectly cromulent), while shifting the `StringConvertible` >> protocols over to the `Representable` category. >> >> Do you really think 'Convertible' is more clear than 'Initializable'? > > I don't think `Convertible` is clearer than `Initializable`, but I > think it rolls off the tongue better, is easier to spell, is more > compatible with non-initializer implementations, and in general wins > on a lot of squishy, subjective, hard-to-define axes. > > Subjectively, I've noticed that a lot of people *don't* think of > things like `Double(myFloat)` as being initializers; they think of > them as conversions. To those people, `Convertible` is probably the > right name. Convertible also tends to implies some semantics, whereas Initializable just describes a valid syntax. Protocols that merely describe what you're allowed to write in code but nothing about its meaning are usually a bad idea. -- Dave _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
