<div dir="ltr">I&#39;ve been thinking about the &quot;conversion to some other type from this protocol&quot; case for a while since it often seems to go against the guidance to add a property for this conversion. `Convertible` is always an awkward Protocol to write, in my opinion.<div><br></div><div>Is there a chance that we simplify the the `Convertible` case by adding this syntax to protocols</div><div><br></div><div>``` swift</div><div><br></div><div>protocol CustomStringConvertible {</div><div>    String.init(customStringFrom:)</div><div>}</div><div><br></div><div>```</div><div><br></div><div>or something similar? I admit that it *is* unwieldy to declare that String has an initializer in a protocol *but* we almost always end up writing an initializer which accepts our protocol and calls the &#39;constructor property&#39; we&#39;ve required in the protocol. This removes that indirection (also removing the strange two-ways-in-our-API-to-convert-this-to-that) and, maybe, avoids some overloading. </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 16, 2016 at 10:33 AM, Tony Allevato via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><span class=""><div dir="ltr">On Tue, May 10, 2016 at 11:48 AM Chris Lattner via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Swift community,<br>
<br>
The review of &quot;SE-0041: Updating Protocol Naming Conventions for Conversions&quot; begins now and runs through May 16. The proposal is available here:<br>
<br>
        <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0041-conversion-protocol-conventions.md" rel="noreferrer" target="_blank">https://github.com/apple/swift-evolution/blob/master/proposals/0041-conversion-protocol-conventions.md</a><br>
<br>
Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution mailing list at<br>
<br>
        <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br>
or, if you would like to keep your feedback private, directly to the review manager.<br>
<br>
What goes into a review?<br>
<br>
The goal of the review process is to improve the proposal under review through constructive criticism and contribute to the direction of Swift. When writing your review, here are some questions you might want to answer in your review:<br>
<br>
        * What is your evaluation of the proposal?<br></blockquote><div><br></div></span><div>+1 with the newly proposed Initializable/Representable names. Initializable just fits perfectly with the fact that Swift has things called initializers and is a vast improvement over Creatable. Representable to denote the other direction makes sense compared to existing Cocoa APIs that use *Representation in their name.<br></div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
        * Is the problem being addressed significant enough to warrant a change to Swift?<br></blockquote><div><br></div></span><div>Yes. Many developers use stdlib as guidance when designing their own APIs and having the standard library be internally consistent sets a good example. These recommendations should also be hoisted into the API naming guidelines documentation so that people can easily cite it, as opposed to just saying &quot;note the pattern that exists&quot; (this is helpful when writing team-specific style guides and for enforcing conventions in code reviews).</div><span class=""><div><span style="line-height:1.5"> </span><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
        * Does this proposal fit well with the feel and direction of Swift?<br></blockquote><div><br></div></span><div>Yes, it makes the language more consistent.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
        * If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?<br></blockquote><div><br></div></span><div>None that handle conversions in this way using protocols.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
        * How much effort did you put into your review? A glance, a quick reading, or an in-depth study?<br></blockquote><div><br></div></span><div>I read the proposal, the message with the updated names afterwards, and loosely followed the e-mail threads.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
More information about the Swift evolution process is available at<br>
<br>
        <a href="https://github.com/apple/swift-evolution/blob/master/process.md" rel="noreferrer" target="_blank">https://github.com/apple/swift-evolution/blob/master/process.md</a><br>
<br>
Thank you,<br>
<br>
-Chris Lattner<br>
Review Manager<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></span></div></div>
<br>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br></blockquote></div><br></div>