<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 19, 2018, at 7:47 PM, Victor Stinner <<a href="mailto:vstinner@redhat.com" class="">vstinner@redhat.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">It seems that the main question for a new governance is how to take a</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">decision on PEPs (accept or reject them with some variants like</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Deferred). I read that core developers are unable to make a decision</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">themselves (fail to reach a consensus) and that letting core</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">developers decide would make Python "inconsistent" (as if only a</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">single BDFL is able to keep Python consistent). I also read that the</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">BDFL is required to make unpopular decisions to enhance Python.</span></div></blockquote></div><br class=""><div class=""><div class="">I think the core difference behind all of the proposals, when you get down to</div><div class="">brass tacks, will be the vision for where the langauge goes. There are</div><div class="">independently good ideas that maybe should not be accepted, because they</div><div class="">compromise the vision for the worse, or ideas that seem poor on the tin but that</div><div class="">once they get added they mesh well with the overall language.</div><div class=""><br class=""></div><div class="">The further you scale up the number of people directly deciding the direction</div><div class="">of the language, the more likely you will find inconsistency. No two people have</div><div class="">the same design sense, and so if you ask two people you're likely to get at</div><div class="">least two answers.</div><div class=""><br class=""></div><div class="">Of course with many things, there are grey areas. If you have some sort of</div><div class="">council of N developers, with a small enough N you can arrive at a place where</div><div class="">the design sense for all of N are closely enough aligned that the inconsistency</div><div class="">produced by them are minor enough as to not be noticeable. However, the larger</div><div class="">you make that group, the more likely you are to introduce larger and larger</div><div class="">inconsitencies.</div><div class=""><br class=""></div><div class="">Now, that doesn't mean that focusing on consistency to the end of all other</div><div class="">things is the right choice. The laws of any democratic country tend to be</div><div class="">extremely inconsistent, due to that very reason, but most people would not argue</div><div class="">that we should revert democracy back to dictatorships in those countries.</div><div class=""><br class=""></div><div class="">Democracy brings with it more power to the "masses" and helps protect against</div><div class="">a sole leader drastically going against the will of "the people" over an</div><div class="">extended period of time.</div><div class=""><br class=""></div><div class="">So realistically, the choice comes down to whether we value consistency more</div><div class="">(in which case, we'd want to favor solutions that have a small N) or more</div><div class="">directly empowering people with a democracy.</div><div class=""><br class=""></div><div class="">Of course, you could try to do something that combines the two of them. You</div><div class="">could elect a BDFL, but have PEPs go through a vote process first where they</div><div class="">need to get a simple majority, and at which point the BDFL could approve or</div><div class="">veto, and if they veto, then the voting body gets an additional chance to vote</div><div class="">and if they're able to get a larger majority (2/3?) then they can override the</div><div class="">BDFL's veto. That provides some protections from both a "design by committee"</div><div class="">effect (since the BDFL can veto) but also provides very popular proposals a</div><div class="">chance to pass even if the BDFL is against them.</div></div><div class=""><br class=""></div><div class=""><div class="">The big loss of that compromise is that you again, give up some of the</div><div class="">consistency, since a large enough group of developers can still introduce an</div><div class="">inconsistent vision and you remove the ability for the BDFL to accept unpopular</div><div class="">but long term necessary PEPs (since they'd have to get a simple majority first).</div></div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>