<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Aug 24, 2017, at 8:57 PM, Chris Lattner 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="">On Aug 24, 2017, at 1:59 PM, Dave DeLong via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><div class=""><blockquote type="cite" class=""><b class="">Keyword Explosion</b><br class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><br class=""></div></div><div class="">During the Great Access Control Wars of Swift 4, one of the points that kept coming up was the reluctance to introduce a bazillion new keywords to address all the cases that were being brought up. The impression I got is that adding new keywords was essentially an <i class="">anti-pattern</i>. And so when I’m reading through this onslaught of emails, I’m troubled by how everything is seeming to require new keywords. There’s the obvious <font face="Menlo" class=""><span style="font-size: 11px;" class="">async</span></font>/<font face="Menlo" class=""><span style="font-size: 11px;" class="">await</span></font>, but there’s also been discussion of <font face="Menlo" class=""><span style="font-size: 11px;" class="">actor</span></font>, <font face="Menlo" class=""><span style="font-size: 11px;" class="">reliable</span></font>, <font face="Menlo" class=""><span style="font-size: 11px;" class="">distributed</span></font>, <font face="Menlo" class=""><span style="font-size: 11px;" class="">behavior</span></font>, <font face="Menlo" class=""><span style="font-size: 11px;" class="">message</span></font>, and <font face="Menlo" class=""><span style="font-size: 11px;" class="">signal</span></font> (and I’ve probably missed others).</div></div></div></blockquote><div class=""><br class=""></div><div class="">I can’t speak for message/signal, but you need to understand a bit more about how Swift works. &nbsp;There is a distinction between an actual keyword (which ‘async’ would be, and ‘class’ currently is) and “modifiers”. &nbsp;Modifiers occur with attributes ahead of a real keyword, but they are not themselves keywords. &nbsp;They are things like weak, mutating, reliable, distributed, etc. &nbsp;If we go with the “actor class” and “actor func” approach, then actor would not be a keyword.</div></div></div></div></blockquote><br class=""></div><div>Concrete example, this is (weird but) valid code:</div><div><br class=""></div><div>var weak = 42</div><div>weak += 2</div><div>print(weak+weak)</div><div><br class=""></div><div><br class=""></div><div>This is a consequence of weak not being a keyword.</div><div><br class=""></div><div>-Chris</div><div><br class=""></div><br class=""></body></html>