<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=""><blockquote type="cite" class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="">I can't agree that /*…*/ comments are useless.</div></div></blockquote><div class=""><br class=""></div>I didn't say they are useless, but they are the source of many troubles. Sure, they do bring their own value to the table as well.<div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="">The <i class="">examples in the proposal</i> aren't things I would write, but I can certainly think of other places I use them.</div></div></blockquote></div><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div><div class="">I argue that your examples are comments I'd red-flag and could be trivially written in a way with single-line comments.</div><div class=""><br class=""></div></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><font face="Menlo" class="">} else /* foo == 0 */ {</font></div><div class=""><span style="font-family: Menlo;" class=""><br class=""></span></div></div></div></blockquote>vs.<font face="Menlo" class=""><br class=""></font><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><span style="font-family: Menlo;" class=""><br class=""></span></div><div class=""><span style="font-family: Menlo;" class="">} else { // foo == 0</span></div></div></div><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div></div></div></blockquote><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="">The `// foo == 0` comment is what I'd call a "bad comment" though. It is a comment that cannot be trusted as it cannot be verified by the compiler and has great potential for being misleading. Depending on the size of the blocks of the code in the condition statements, it's also fairly obvious.</div><div class=""><br class=""></div></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><font face="Menlo" class="">// We can't use SpecificType here because of XXX.<br class=""></font><div class=""><font face="Menlo" class="">let foo: protocol<OtherType/*, SpecificType*/> = bar()</font></div><div class=""><font face="Menlo" class=""><br class=""></font></div></div></div></blockquote>vs.<br class=""><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><blockquote style="margin: 0px 0px 0px 40px; border: none; padding: 0px;" class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"></div></blockquote></div><div class=""><font face="Menlo" class=""><br class=""></font></div><div class=""><span style="font-family: Menlo;" class="">// </span><span style="font-family: Menlo;" class="">We can't use SpecificType here because of XXX.</span></div><div class=""><div class=""><span style="font-family: Menlo;" class="">// Ideally: <OtherType, SpecificType></span></div></div><div class=""><span style="font-family: Menlo;" class="">let foo: protocol<OtherType> = bar()</span></div></div></blockquote><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div><div class="">I'd argue that both of these changes also make the code clearer as annotation data is not intermingled with what will actually be the code that will execute. In other words, as a code author, I don't need to parse out the comment block in my head to see what the code is really saying.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="">…and then <i class="">given</i> that we have /**/ comments in the language, we should define their behavior even in places you and I personally don't intend to write them.</div></div></blockquote><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div><div class="">Sure. I agreed +1 to the proposal as stated. However, I think there are other alternatives that weren't discussed in the thread or in the proposal.</div></div></div></div><div class=""><br class=""></div><div class="">-David</div></div></div></body></html>