Reminder re: Complementary Vote on PEP Three-Zero-Eight

This message is to remind you that TOMORROW (Saturday) is the last day to vote in the complementary, UNOFFICIAL vote on adding a ternary operator to Python (PEP-308). Response has been good so far, but the more people that participate, the more useful the results will be. Please participate if you have the time. A copy of the ballot, and instructions on how to vote are included below, in case you missed the first announcement. More information about this additional vote, and why it was organized will be found here: http://mail.python.org/pipermail/python-list/2003-March/151680.html ***** IMPORTANT NOTE: This is NOT a ballot for the "official" PEP-308 vote being run by Raymond Hettinger. It is for a different vote that is intended to COMPLEMENT the results of the official vote, by using a different type of ballot, and a different method of tallying the results (Condorcet's Method), for those who may be interested. If enough people choose to participate, it will provide a high-quality source of additional information about the preferences of the Python community regarding the ternary operator. This vote is NOT intended to compete with, or substitute for the official vote. Please participate in both votes if you have the time, but BE SURE to vote in the official one if you care about the outcome of PEP-308. See the explanations in my posting to comp.lang.python two days ago for more information about the reasons for this supplemental vote on PEP-308 ("ANNOUNCE: Complementary VOTE re: PEP 308 Ternary Proposal", Sun, 02 Mar 2003 17:44:33 -0600). NOMINATIONS The two-day nomination period for additional syntax proposals has now ENDED. No additional nominations were received, so the ballot is as follows: BALLOT ---------- XX NO TERNARY XX t if C else f XX if C then t else f XX (if C: t else: f) XX if C: t else: f XX C ? t : f XX C ? t ! f XX cond(C, t, f) XX C ?? t || f XX C then t else f XX t when C else f XX C ? t else f XX C -> t else f XX C -> (t, f) XX [t if C else f] XX ifelse C: t else f XX select C: t else f XX when C: t else f XX case C: t else f XX <if C then t else f> XX C and t else f ---------- HOW TO VOTE Voting is a simple matter of RANKING the alternatives of interest by replacing the 'XX' that precedes each option with a 2-digit number. For example, you would use '01' for your FAVOURITE (highest-ranked) option, and greater numbers (02, 03,...) for lower-ranked alternatives. You may RE-ORDER the options on the ballot. It is often easier when there are many options to reorder them manually from best to worst, and then assign rankings. Note though, that you must STILL assign a rank number to each option, since it is always the NUMBER that determines the rank, not the ordering. You may assign the SAME RANK to multiple options if you consider them to be equally good/bad. Doing this is equivalent to abstaining from participation in any decision between these equally-ranked alternatives. To simplify voting, you may TRUNCATE your ballot by leaving certain options UNRANKED (for any options you consider to be so bad and unwinnable as to not be worth considering). If you wish to do this, either: a) leave 'XX' in front of the unwanted option(s) in your submitted ballot, rather than replacing it with a rank number, or b) delete the line(s) of the ballot that contain the unwanted options. You can also use a combination of both methods. In either case, these truncated options will be interpreted the same as if they had been ranked EQUALLY, and LOWER than all explicitly ranked alternatives. While truncation and equal rankings provide convenience, ranking many options (even those you dislike) is a good idea. See the STRATEGY TIPS section (below) for reasons why. Note that the status quo option of "NO TERNARY" simply appears as one of the available options, and every other proposed syntax appears as a separate option on the ballot. By placing "NO TERNARY" somewhere within the middle of your ranking, you can express the desire to have a ternary operator added to Python only if certain forms of syntax are used, and reject alternatives that you dislike (while still expressing preferences among these bad alternatives, in case one or more of them proves to be winnable). The status quo option can of course also be ranked first or last, if you feel either that (a) no ternary is acceptable in any form, or alternately, (b) should be added to the language at any cost. A sample completed ballot might look like: ---------- 02 (if C: t else: f) 01 t if C else f 02 NO TERNARY XX if C then t else f 03 if C: t else: f ---------- Here, the voter's favourite option is "t if C else f". The 4th option is unranked, and could have instead been deleted to indicate the same thing. Surrounding lines of hyphens marking the beginning and end of the ballot are appreciated for clarity, but not required. SUBMITTING YOUR BALLOT You may vote by submitting your email ballot to: ------------------ pepvote@canada.com ------------------ Your final vote must be received within 96 HOURS (4 days, approx. Wed-Sat) of the time this message first appears on comp.lang.python and/or comp.lang.python.announce for it to be counted in the final result. A CONFIRMATION message will be returned for each ballot that is received, identifying any problems. Unconfirmed ballots will not appear in the results, so if you don't receive a reply within a few hours, you may wish to send your ballot again (I'm confirming votes manually, so the response will not be immediate). If you decide to CHANGE YOUR VOTE, just send a revised ballot containing your new preferences. The last confirmed ballot for each email address will be the one that appears in the final results. RESULTS Results will be published on Sunday, March 9th, but NOT before the voting period of the "official" vote has ended (Noon, EST). Published results will be sent to comp.lang.python and comp.lang.python.announce. Results will include (among other things) a list containing each voter's NAME, EMAIL ADDRESS (munged), and COMPLETED BALLOT to allow for independent verification. Therefore, if you do not want any or all of this information about you made public, DO NOT VOTE! Please refer to the previous message announcing this vote for details about what types of information will appear in the results. STRATEGY TIPS You may be unfamiliar with CONDORCET'S METHOD, the system of voting used here (unless you happen to be a member of the Debian Project :-). Although completing a ranked ballot is technically very easy, if you wish to know how to maximise the chances of getting the outcome you want, you should read following information before completing your ballot: ***** 1. Condorcet's method of counting ranked ballots is very different from other systems (STV/AV/IRV, Borda, etc.) that also use a ranked ballot. Therefore, it is a bad idea to attempt to vote strategically based on what you know (or think you know) about how those systems work. The best strategies for one method of voting will usually fail very badly when applied in another, even if the form of the ballot is similar. 2. You should NOT assume that ranking any UNACCEPTABLE options will harm the chances of electing your PREFERRED option(s). Condorcet's method is a system of pairwise voting, where the overall result is determined by finding the majority winners of a series of two-way races between every possible pair of alternatives. Not ranking (truncating) some options, or assigning the same rank to a group of options is therefore equivalent to ABSTAINING from participation in any decision between those equally-ranked alternatives. Therefore, if the final choice in the election is between two options, both of which you dislike -- but not EQUALLY -- you may later regret not having participated in that decision. 3. You should also NOT vote for what you believe to be an acceptable, popular choice (the "lesser evil" compromise) ahead of your true favourite(s), in the belief that this will somehow help to prevent the election of a popular, disliked alternative (the "greater evil"). This type of strategy is often necessary in plurality ("first-past-the-post") voting, but is ineffective and unnecessary with Condorcet's method. Condorcet's method finds the best compromise automatically, if one is needed, so doing this will simply harm the chances of electing your true favourite. See http://www.electionmethods.org/Condorcet.htm for a detailed explanation of this. ******************************************************* With CONDORCET'S METHOD, you will maximise the power and effectiveness of your ballot by providing a COMPLETE and SINCERE expression of your true preferences. You should only rank options equally if you genuinely consider them to be equally good (or bad). ******************************************************* -- Norman Petry
participants (1)
-
Norman Petry