<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="">Hi Austin, thank you, please see inline.<br class=""><div><blockquote type="cite" class=""><div class="">On 28.07.2016, at 19:33, Austin Zheng &lt;<a href="mailto:austinzheng@gmail.com" class="">austinzheng@gmail.com</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=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jul 28, 2016, at 10:19 AM, Ted F.A. van Gaalen via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">&nbsp; &nbsp; &nbsp; -= Maybe it’s not too late =-&nbsp;</div><div class="">For the moment the classical for ;; &nbsp;could simply&nbsp;</div><div class="">remain activated &nbsp;(Yes) &nbsp;in 3.0. because: &nbsp;</div></div></div></blockquote><div class=""><br class=""></div><div class="">I don't understand why you keep on complaining about this.</div></div></div></div></blockquote><div>?&nbsp;</div>I have explained this many times before, didn’t I?&nbsp;</div><div><br class=""></div><div>Its removal causes a very crucial limitation/change in the way&nbsp;</div><div>one writes programs, So writing about this for;; subject is</div><div>very, very different from long discussions like those about&nbsp;</div><div>allowing a comma at the end of a list or not…</div><div>because removing the for;; has a very heavy impact.</div><div><br class=""></div><div>Furthermore, IMHO the decision to remove the for;; was based</div><div>on very subjective loose and partly irrelevant criteria.</div><div><br class=""></div><div>For example the suggestion, that experienced</div><div>programmer will refrain from using the for;;</div><div>was ridiculous. It’s a bit like assuming that a technicians</div><div>will not use a screw drivers anymore..</div><div><br class=""></div><div>I’ve wrote about this extensively before.</div><div>&nbsp;</div><div>Just read that proposal to remove&nbsp;</div><div>the for;; and for that matter also the ++ and — again..&nbsp;</div><div>Albeit a bit understandable: It was one of the first proposals,&nbsp;</div><div>written in a time when everything had just started..</div><div><br class=""></div><div>Personally, for my apps, removing the for;; results in lots of&nbsp;</div><div>otherwise unnecessary time converting at least ten source files,&nbsp;</div><div>typically containing about five for;; loops each, nested ones also.&nbsp;</div><div><br class=""></div><div>Automagic conversion is not possible also because many of&nbsp;</div><div>these iterations are with floating point numbers and also&nbsp;</div><div>run backwards.let alone with decrementing steps.</div><div><br class=""></div><div>In my Apple TV 3D SceneKit based app under construction</div><div>these are for;; with floats, which have to be replaced by do-while constructs..</div><div><br class=""></div><div>In all of my apps (i am a pour lonesome developer :o)&nbsp;</div><div>I have to test all of this again and again to make sure&nbsp;</div><div>my apps work flawlessly without errors again, as they do now.</div><div>(see RavelNotes and RavelNotesBasic)&nbsp;</div><div>These apps are quite complex, changing and testing</div><div>these is not that easy.</div><div><br class=""></div><div>Ergo: &nbsp;as a law of steel:&nbsp;</div><div>One should *never* introduce backward breaking changes!</div><div><br class=""></div><div>So I am very glad Ted Kremenek came forward with this</div><div>module based different version compilation option.</div><div>It seems to be a reasonable alternative.&nbsp;</div><div><br class=""></div><div>If not, I would have dropped Swift soon and look for another</div><div>solution to produce my apps. However, this would be very regrettable.</div><div>because I really love Swift. I wouldn’t be here if I didn’t !</div><div><br class=""></div><div>I was quite happy with Swift 2. It had all the things I tend to expect</div><div>from a state of the art programming language. very cool.</div><div>and also eagerly waiting for *additive* changes and improvements.</div><div><br class=""></div><div><br class=""></div><div>@Craig:&nbsp;</div><div>When Swift was presented and its use encouraged by you, Craig, on the WWDC,&nbsp;</div><div>it was not supposed to be in a *beta stage* ! At least, it was my impression</div><div>that it was no longer in beta stage and that it was OK to use Swift for</div><div>production, no one told otherwise, if I remember correctly.</div><div><br class=""></div><div>And so I embraced Swift immediately, me being mostly an early adapter&nbsp;</div><div>&nbsp; (even when being in IT since 1978 or so, or maybe rather because of that!)&nbsp;</div><div>&nbsp;assuming that it was solid and a safe bet to use it in a production environment.&nbsp;</div><div><br class=""></div><div>However, IMHO, it has been virtually in a beta stage until now,&nbsp;</div><div>simply because, things were and are still changing!.</div><div>Yes, of course I do expect improvements, however they should be</div><div>additive, not code breaking changes.</div><div><br class=""></div><div>I also do understand and don’t underestimate the motion with new languages.&nbsp;</div><div class=""><br class=""></div><div><br class=""></div><div>If I had known all this before, I would have remained programming</div><div>my apps in Objective C until a more solid version came along.&nbsp;</div><div>In the mean time, yes, of course, I would have played with it and studying it</div><div>sideways, and take part and listening in this forum.&nbsp;</div><div><br class=""></div><div>And, maybe then I would have enough faith in 3.0 that is to&nbsp;</div><div>use Swift 3.0 and higher fully in a production environment.</div><div>And don’t get me wrong, I like Swift very much it really&nbsp;</div><div>is a very advanced development.</div><div><br class=""></div><div>And then another thing, well, maybe you’d</div><div>think that I am whining a bit, but try to see it this way:</div><div>Most things in Swift are OK and even superb, so I don’t</div><div>need to write about these! What remains then is just to&nbsp;</div><div>write about the thing’s I don’t like or which could be</div><div>improved. This might give the impression that I am just&nbsp;</div><div>complaining, note however, nothing is farther from the truth.&nbsp;</div><div><div><br class=""></div><div>( because we just write, which is a very limited form</div><div>of human communication being a lot different then sitting</div><div>around a round table (hmm that reminds me of something :o)</div><div class="">laughing and drinking coffee. I you’d wish to change that</div><div class="">send me a ticket to San Francisco or so. :o)&nbsp;</div><div class=""><br class=""></div></div><div><br class=""></div><div><blockquote type="cite" 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 class="">For the record, I too think getting rid of the C-style for loop was a mistake, </div></div></div></div></blockquote><div>Yes it is. Well, then maybe you also could perhaps have made more effort</div><div>to keep the for;; &nbsp;and other colleagues too that think likewise?&nbsp;</div><div>Or in the near future, to support my upcoming proposal?&nbsp;</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class="">and there are a number of other proposals whose outcomes are not ones I would have personally preferred.</div></div></div></div></blockquote>Of course, I realize that as well, that goes for me too.&nbsp;</div><div><span style="color: rgb(0, 102, 33); font-family: arial, sans-serif; white-space: nowrap; background-color: rgb(255, 255, 255);" class=""><a href="https://www" class="">https://www</a>.</span><b style="color: rgb(0, 102, 33); font-family: arial, sans-serif; white-space: nowrap;" class="">you</b><span style="color: rgb(0, 102, 33); font-family: arial, sans-serif; white-space: nowrap; background-color: rgb(255, 255, 255);" class=""><a href="http://tube.com/watch?v=7S94ohyErSw" class="">tube.com/watch?v=7S94ohyErSw</a></span></div><div>:o)<br class=""><blockquote type="cite" 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 class="">However,</div><div class=""><br class=""></div><div class="">1. There is a well-defined process through which all changes to the Swift language must go, laid out in the swift-evolution repository's documentation from the first day Swift became an open-source project.</div></div></div></div></blockquote>I know that, and that’s why I will make a proposal after 3.0 to reinstate the classical for loop.&nbsp;</div><div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class="">2. That process includes feedback and review from both the community and the Swift core engineers, and often multiple rounds of discussion.</div></div></div></div></blockquote>Agreed, but I arrived much later..</div><div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class="">3. The process doesn't work if we disregard its outcomes simply because we don't like them, or if we allow interminable chains of back-and-forth proposals because people on one side of issue X simply cannot accept a particular decision.</div></div></div></div></blockquote>Obviously, however, if a proposal, due to later insights, is wrong or conflicting is should be discussable to drop, correct or replace it.<br class="">&nbsp;<br class=""><blockquote type="cite" 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 class="">The technical aspects of the C-style for loop and its proposed replacements have already been discussed <i class="">ad nauseam</i>&nbsp;on this list and in other places, so I won't touch on them.</div></div></div></div></blockquote>true, I’ve had my share in these too. what remains now for me to do is,&nbsp;</div><div>&nbsp;to propose a reinstatement of the for ;; (as in Go) &nbsp;after 3.0</div><div>I’ll do that.&nbsp;</div><div><br class=""></div><div>Met vriendelijke groeten</div><div>from a Dutch professional somehow landed in Germany :o)</div><div>TedvG</div><div><a href="http://www.tedvg.com" class="">www.tedvg.com</a></div><div><a href="http://www.ravelnotes.com" class="">www.ravelnotes.com</a></div><div><a href="http://www.speyer.de" class="">www.speyer.de</a></div><div><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><i class=""><br class=""></i></div><div class="">Best regards,</div><div class=""><i class="">Austin&nbsp;</i>&nbsp;</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">&nbsp;&nbsp;</div><div class="">&nbsp; - It doesn’t conflict at all with all other language elements,</div></div></div></blockquote></div></div></div></blockquote>YEs!<br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""></div></div></blockquote></div><br class=""></body></html>