<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 Mar 14, 2018, at 12:45 PM, <a href="mailto:forax@univ-mlv.fr" class="">forax@univ-mlv.fr</a> wrote:</div><div class=""><div class=""><div style="font-size: 12pt;" class=""><div class="" style="font-family: arial, helvetica, sans-serif;"><br class=""></div><hr id="zwchr" data-marker="__DIVIDER__" class="" style="font-family: arial, helvetica, sans-serif;"><div data-marker="__HEADERS__" class="" style="font-family: arial, helvetica, sans-serif;"><blockquote style="border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica, Arial, sans-serif; font-size: 12pt;" class=""><b class="">De: </b>"Guy Steele" <<a href="mailto:guy.steele@oracle.com" class="">guy.steele@oracle.com</a>><br class=""><b class="">À: </b>"Remi Forax" <<a href="mailto:forax@univ-mlv.fr" class="">forax@univ-mlv.fr</a>><br class=""><b class="">Cc: </b>"Kevin Bourrillion" <<a href="mailto:kevinb@google.com" class="">kevinb@google.com</a>>, "amber-spec-experts" <<a href="mailto:amber-spec-experts@openjdk.java.net" class="">amber-spec-experts@openjdk.java.net</a>><br class=""><b class="">Envoyé: </b>Mercredi 14 Mars 2018 17:12:34<br class=""><b class="">Objet: </b>Re: expression switch vs. procedural switch<br class=""></blockquote></div><div data-marker="__QUOTED_TEXT__" class=""><blockquote style="border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; font-weight: normal; font-style: normal; text-decoration: none; font-size: 12pt;" class=""><span style="font-family: Helvetica, Arial, sans-serif; font-size: 12pt;" class="">On Mar 14, 2018, at 12:16 PM, Remi Forax <</span><a href="mailto:forax@univ-mlv.fr" class="" target="_blank" style="font-family: Helvetica, Arial, sans-serif; font-size: 12pt;">forax@univ-mlv.fr</a><span style="font-family: Helvetica, Arial, sans-serif; font-size: 12pt;" class="">> wrote:</span><br class=""><div class=""><blockquote class=""><div class=""><div class=""><div style="font-size: 12pt;" class=""><div class=""><div class=""><font face="Helvetica, Arial, sans-serif" class="">. . .</font></div><div class="" style="font-family: arial, helvetica, sans-serif;">yes, but it's what i detest the most about C++, everyone has its own dialect.</div></div></div></div></div></blockquote><br class=""></div><div class="" style="font-family: Helvetica, Arial, sans-serif;">What is the solution?  A style requirement that every programmer use every feature in the language at least once in any program?  (I have known programmers like that, and their code was not necessarily any easier to read.)</div></blockquote><div class="" style="font-family: arial, helvetica, sans-serif;"><br class=""></div><div class="" style="font-family: arial, helvetica, sans-serif;">Do not introduce a feature in the language which is used once every year is a good start.</div><div class="" style="font-family: arial, helvetica, sans-serif;">Do not add a solution to solve the corner^2 case (the corner case of a corner case as Brian call it) in the language.</div></div></div></div></div></blockquote><div><br class=""></div>These are good answers to my question, thanks!<br class=""><blockquote type="cite" class=""><div class=""><div class=""><div style="font-size: 12pt;" class=""><div data-marker="__QUOTED_TEXT__" class=""><blockquote style="font-family: Helvetica, Arial, sans-serif; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; font-weight: normal; font-style: normal; text-decoration: none; font-size: 12pt;" class=""><div class=""><br class=""></div><div class="">I am sympathetic to your feeling about this, but have no idea how to encourage it or enforce it.  You really can’t prevent a programmer, or group of programmers, from sticking to a subset that makes them happy.</div></blockquote><div class="" style="font-family: arial, helvetica, sans-serif;"><br class=""></div><div class="" style="font-family: arial, helvetica, sans-serif;">on the Human aspect of programming, publish an official language guideline and provides tools that enforce it like Google does with Java or golang (with go-fmt).  <br data-mce-bogus="1" class=""></div></div></div></div></div></blockquote><br class=""></div><div>I agree that common guidelines are a good thing.</div><div><br class=""></div><div>But you still can’t prevent programmers from choosing their own “happy subsets” of even the official guideline.</div><div><br class=""></div><div>Simple example: suppose I choose, as my own special discipline (which I have sometimes used) never to use `break` to break out of a `for` or `while` loop, but instead insist on providing a label and using `break label;`.  The rationale is that whenever I see a plain `break` in my code, I always know it’s for a `switch` statement.</div><div><br class=""></div><div>If you agree with this idea, then I win: I get to use my happy subset.</div><div><br class=""></div><div>If you disagree, then I really win: it demonstrates that you and I would choose different happy subsets!  :-)  :-)  :-)</div><div><br class=""></div><div>(Don’t mind me; I’m feeling puckish today.)</div><div><br class=""></div><div>—Guy</div><div><br class=""></div></body></html>