<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><span style="color: rgb(68, 68, 68); font-size: 15px; line-height: 21.2999992370605px; background-color: rgb(255, 255, 255);">Hi there,</span><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">as others have already pointed out, I think the proposal introduces a lot of new complexity that is not compensated by its advantages:</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- It is brittle. Changing the order of members is no problem today, but it will break compatibility when initializers are generated in the proposed way. The same is true when you refactor and move a member to a superclass.</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- No default values for constants</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- Quite big addition to the language (especially when all possible extensions of the proposal are accepted as well)</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- The "..." can lead to confusion, there's to much magic involved</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Imho the last point is a possibility to improve the proposal in a significant way:</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">The three dots are just a placeholder - why not simply be a little bit more detailed?</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">&gt;&nbsp;<font face="Menlo" size="1" style="line-height: normal;"><span style="line-height: 17.0400009155273px; font-size: 12px;">init(self x: Int, self y: Int = 0, self z: Int = 0) {}</span></font></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">is quite verbose, but the following is more concise yet much easier to understand than "..."</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><font face="Menlo" size="1" style="line-height: normal;"><span style="line-height: 17.0400009155273px; font-size: 12px;"><br style="line-height: 17.0400009155273px;"></span></font></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><font face="Menlo" size="1" style="line-height: normal;"><span style="line-height: 17.0400009155273px; font-size: 12px;">init(x, y = 0, z = 0) {}</span></font></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Afaik, single words currently aren't used in method declarations, so the compiler doesn't need "self".</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">I myself am not really happy with this syntax, but at least it really solves some problems:</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- Less boilerplate (but more than in the proposal)</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- Default value for constants (better than the proposal)</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- No "memberwise" keyword required (better)</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">- It's robust: You can rearrange parameters and members without breaking anything (better)</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">You have to type more characters than "...", but autocompletion could help here as it does in other situations, and right now, I rarely see initializers with more than three parameters (although this could be caused by the annoying repetition in current initializers).</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Best regards,</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Roger</div>                                               </div></body>
</html>