<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Addendum: another problem with convention #2 is that the rule produces "Mccall", "Iphone", and "Latex" along with "Html", all of which are less readable (for me, in context of a larger identifier like "IphoneViewController") than the convention #1 output.</div><div class=""><br class=""></div><div class="">(At least, my understanding of the convention #2 rule.)</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 12, 2016, at 11:12, Jordan Rose via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">(re:&nbsp;<a href="https://gist.github.com/dabrahams/55fc5ece355da4664730" class="">https://gist.github.com/dabrahams/55fc5ece355da4664730</a>)</div><div class=""><br class=""></div><div class="">I am very strongly in favor of convention #1, and it comes from what we were talking about offline yesterday. This is what I do pretty much automatically when coding:</div><br class=""><table style="border-collapse: collapse; border-spacing: 0px; color: rgb(68, 68, 68); font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; font-size: 16px;" class=""><thead class=""><tr class=""><th style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">Word</th><th style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">Lowercase</th><th style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">"Capitalized"</th><th style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">Uppercase</th></tr></thead><tbody class=""><tr class=""><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">string</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">string</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">String</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">STRING</td></tr><tr class=""><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">Cupertino</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">cupertino</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">Cupertino</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">CUPERTINO</td></tr><tr class=""><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">McCall</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">mccall</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">McCall</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">MCCALL</td></tr><tr class=""><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">HTML</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">html</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">HTML</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">HTML</td></tr><tr class=""><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">iPhone</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">iphone</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">IPhone</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187);" class="">IPHONE</td></tr><tr class=""><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class=""><a href="https://en.wikipedia.org/wiki/LaTeX" style="color: rgb(11, 0, 128); text-decoration: none;" class="">LaTeX</a></td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">latex</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">LaTeX</td><td style="vertical-align: top; padding: 4px 10px; border: 1px solid rgb(187, 187, 187); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" class="">LATEX</td></tr></tbody></table><br class=""><div class=""><br class=""></div><div class="">(apologies to those reading this in plain text)</div><div class=""><br class=""></div><div class="">The important thing here is that the "capitalize" operation doesn't mess with the case of any other letters in&nbsp;the word. My preferred rules are then:<br class=""><br class=""><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• To form a type name, "capitalize" every component, then concatenate.<br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• To form a value name, "lowercase" the first component, "capitalize" every other component,&nbsp;concatenate.<br class=""></div><div class=""><br class=""></div>which is pretty much convention #1.</div><div class=""><br class=""></div><div class="">(My "capitalize" rule for coding breaks the rule for publication, in which "iPhone" would be the capitalized&nbsp;form. Without it, however, you end up with names like "isUsingiPhone" and&nbsp;"DefaultiPhoneViewController", which I agree are harder to read than "isUsingIPhone" and&nbsp;"DefaultIPhoneViewController".)<br class=""><br class="">This isn't quite what Cocoa does (as noted by Dave, it prefers to&nbsp;not&nbsp;lowercase initialisms or acronyms in&nbsp;value names, leaving them all uppercase), but it's what I do in practice.<br class=""><br class="">Regarding the other suggestions:<br class=""><br class=""><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• "HtmlString"&nbsp;(a type) makes me uncomfortable because there isn't a word "Html" or "html"; that is, it's not the output of any of my built-in mental operations.<br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• "hTMLString"&nbsp;(a value) is nonsense to me; that's three words "h", "TML", and "String".</div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>• I really don't find "XmlRpcConnection" easier to read than "XMLRPCConnection". Easier to break up into words, yes; easier to recognize what those words are, no.</div><div class=""><br class=""></div><div class="">Jordan</div><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 11, 2016, at 21:51, Dave Abrahams via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class="">I just posted a write-up about various case conventions for initialisms:<br class=""><a href="https://gist.github.com/dabrahams/55fc5ece355da4664730" class="">https://gist.github.com/dabrahams/55fc5ece355da4664730</a>. &nbsp;I was surprised<br class="">at how it turned out, FWIW.<br class=""><br class="">Cheers,<br class=""><br class="">-- <br class="">-Dave<br class=""><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></div></blockquote></div><br class=""></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>