Live data from Hacker News

A post by Guido van Rossum removed for violating Python community guidelines

discuss.python.org

221–230 of 289 posts

Re: A post by Guido van Rossum removed for violating Python community guidelines

#221
post #172

Earlier quoted context omitted.

I think the politics of power is unavoidable no matter how well you silo your technical work from your people work. Ten years ago, Debian saw three well respected members of the Technical Committee resign — including two former project leaders, one of whom designed the .deb packaging system — during what I see as a similarly heated vote/counter-vote power struggle. This Python saga feels similar.

I believe if things get too heated, all the parties involved should be forced to meet in person for a weekend to talk things out. I'm sure it would solve like 90% of these stupid conflicts, because people rarely get _that_ riled up when in the same room. Written communication, especially asynchronus ones like email or forums, are just unsuitable to capture all nuances of human behaviour. Someone is tired or hungry an…

> (I also don't think they should be allowed to cite things said 5 years ago as a reason to ban someone today. How could that still be relevant?)

Out of curiosity, since similar arguments come up fairly regularly: What is the appropriate time limit, do you think?

Re: A post by Guido van Rossum removed for violating Python community guidelines

#222

Earlier quoted context omitted.

Ironically, "dumb" approval voting, by virtue of using additive aggregation, extracts more information from ballots than ranked choice. It's a reduced-resolution form of continuous range voting, just like discrete range voting (approval voting is literally {0,1} range voting!), that approximates it arbitrarily closely with sufficiently many voters. (Approval voting also literally expresses more information about smal…

Even so, why not use full range voting (0-100) instead? Wouldn't it extract more information?

An arguable disadvantage of full range voting is that it overweights people who vote binary 0/100 and underweights people who vote 80-100. Since the former is almost always strategically advantaged, it seems fairer to just cut out the middle.

Re: A post by Guido van Rossum removed for violating Python community guidelines

#223

Earlier quoted context omitted.

It was happening a lot under Guido too, but IMO, Python was arguably a better language (at least in some ways) 10, 15, even 20 years ago. Python's three super powers were readability, simplicity, and a vast standard library that negated the need for most projects to seek out third party modules. All three of those have declined. It's less readable than it used to be, it's definitely more complicated (not just complex…

> All three of those have declined. It's less readable than it used to be, it's definitely more complicated (not just complex, complicated), and the standard library is declining rapidly in relevance as it ages. I find it much more readable, and more importantly more expressive . Certain new features are missteps IMO, but I just don't use them. But more importantly, the language has been moving away from cryptic %-en…

The walrus operator is nice, except in comprehensions. f-strings are great, except for the `=` debugging operator. Dictionary merging and update operators contradict the "one way to do it" with weird and confusing syntax that's completely redundant to methods that already exist.

Type hints are a sore spot for me. They're good enough when you just don't remember whether an argument is an object or a string, for example, but once you start type hinting deep into data structures, your hints become a mangled soup of nonsense for basically no real benefit. Typing errors are a rare occurrence—perhaps once a year in most projects—yet we clutter our codebases with verbosity to satisfy type checkers instead of prioritizing clarity for developers.

There's a lot that's just straight up redundant. Dicts are ordered now, but is OrderedDict deprecated? No, because it's just slightly different in weird and mostly unimportant ways. `frozenset` is a builtin, for all 3 programmers worldwide who use it. Python resisted match/case syntax for decades, but when it finally arrived, it did so in a way that’s anything but standard—good luck figuring it out without consulting the documentation.

Obviously some improvements are real. Every new version of Python brings valuable enhancements. But just go back to Python as it used to be -- pseudocode that runs. That's just not true anymore. The simplicity has slipped away and will never ever come back.

And the standard library? A very real problem, right now, in computer security is the software supply chain. Remember polyfill from like, yesterday? This is the era when we should double down on having a million dependencies from all over GitHub, from unknown developers with no commitment, because ... npm's hellscape is a model to follow?

I would argue the contrary. There's dependency hell, of course, but there's also dependency risk. If you were evaluating a product right now, and you saw its lockfile depended only on a specific version of the Python Standard Library, that gives you exactly 1 product to evaluate, exactly 1 team of developers to depend on. pip is great and all, but dependency resolvers have quietly let in a hundred trojan horses and a thousand unmaintained dependencies into tons of projects, and no one noticed it was even happening.

Python in 2005, when everyone depended on the standard library, was a safer place than npm is today.

Re: A post by Guido van Rossum removed for violating Python community guidelines

#224
post #94

Earlier quoted context omitted.

When Guido stopped being the sole leader (BDFL) he was replaced by the steering council which is elected and has the purpose of doing the following (Defined in PEP 13 which is the current governance model of Python. Right now Guido is a core developer at this time. See https://peps.python.org/pep-0013/#the-steering-council

That's pretty obvious. The question was, who are these people, specifically, and why they were chosen and given that much power. I mean, I can see the names, but while I don't have to be told who Tim Peters or Guido van Rossum are, I have no clue who these guys are and what their actual contributions are.

There is an election process, and all core python team members vote on the SC (https://peps.python.org/pep-8105/#results) for a 1-year term.

Greg, Thomas, and Barry are all old guard (20+ years as core devs), Emily and Pablo are relatively more recent, but still have 5+ years as core devs and are I believe more actively doing python feature development. All of these folks have served on the steering council before, some for 3-4 years.

Guido has served on the SC before, but has been stepping back recently.

Re: A post by Guido van Rossum removed for violating Python community guidelines

#225

The original text stated: > I don’t know much about voting systems, but I know someone who does. Unfortunately he’s currently banned. Maybe we can wait until his 3-month ban expires and ask him for advice? Currently, the text reads: > This post was flagged by the community and is temporarily hidden. Since it has been hidden for more than 24 hours, this suggests that a moderator action has marked it as permanently hid…

FWIW, the post appears to have been restored. The cited original text is visible presently.

Re: A post by Guido van Rossum removed for violating Python community guidelines

#226

Earlier quoted context omitted.

Ironically, "dumb" approval voting, by virtue of using additive aggregation, extracts more information from ballots than ranked choice. It's a reduced-resolution form of continuous range voting, just like discrete range voting (approval voting is literally {0,1} range voting!), that approximates it arbitrarily closely with sufficiently many voters. (Approval voting also literally expresses more information about smal…

The primary downside to approval voting over a good ranked-choice-voting system (IRV is poor, yet is often considered synonymous with RCV), is that it encourages strategic voting. Let's take the 3 person example and assume I like candidates A, B, C, in that order. With RCV, I would just rank them in that order. With approval voting, I might want to withold my approval for the most popular opponent to A, in order to b…

The main reason "strategic voting" is a big deal when evaluating ranked-choice voting systems is that they actually experience spoiler effects (which more or less follows from Arrow's theorem, no amount of epicycles will totally mitigate them). Approval voting essentially pulls the bottom out of the two most impactful forms of strategic voting by satisfying independence of irrelevant alternatives and structurally enforcing use of the full range.

> Let's take the 3 person example and assume I like candidates A, B, C, in that order. With RCV, I would just rank them in that order. With approval voting, I might want to withold my approval for the most popular opponent to A, in order to boost A's chances of winning.

In a 3-candidate election, the bullet vote for A is not a strategic ballot, it honestly expresses your preference A > B,C. It would be strategic to vote A,C (instead of A,B,C), but it turns out that in elections of up to 3 (relevant) candidates, one of the honest ballots is always optimal.

(This is not to dismiss the impact of voting "for A" vs "against C", because that does matter. But there's a real trade-off there if you aren't fully informed on other voters' (adversarial!) ballots to discourage being the first to actually run that campaign unless you're sure you have a genuine majority.)

Re: A post by Guido van Rossum removed for violating Python community guidelines

#228

Earlier quoted context omitted.

> The last thing we need, seen through that lens, is a complex system where people don’t understand the results or how exactly their vote will affect those results. And this is one of the best features of approval voting compared to any form of ranked choice!

"The winner is preferred to each other candidate, by the majority of voters" seems pretty straightforward to me. The problem with Approval is that we're right back at the Faustian bargain of needing to fully support the lesser evil at the expense of your preferred option. And the only thing Range adds is allowing you to moderate the amount of that bargain.

If you have a Condorcet winner, sure. In fact, approval voting with "honest" ballots always yields the Condorcet winner if one is expressed†.

Where you get into trouble is that not all elections have a Condorcet winner. In particular:

> The problem with Approval is that we're right back at the Faustian bargain of needing to fully support the lesser evil at the expense of your preferred option.

Re: A post by Guido van Rossum removed for violating Python community guidelines

#229

Earlier quoted context omitted.

[flagged]

> For some people changing master -> main isn't a nothing burger, it's actively harmful. I constantly have pain — years after the Summer of Floyd — from repos I follow which change the name of their master branch from ‘master’ to ‘main,’ which breaks all sorts of tooling, sometimes silently (my local copies stay on ‘master,’ and never get updates), sometimes noisily. That switching is actively harmful. > Some people…

Okay but if it's not your project then, to you, it should be a nothing burger.

> but it is the correct name for the master version

Why? Literally why? Main means the exact same thing, it's equally correct. Why choose THIS hill to die on? This is what I'm talking about.

Re: A post by Guido van Rossum removed for violating Python community guidelines

#230

Earlier quoted context omitted.

[flagged]

> I don't think a single soul implied they were monsters. There's nothing wrong with having your branch named "master" if, coincidently, that's what you have. It takes no effort to find arguments such as https://medium.com/let-s-begin/how-to-rename-your-master-bra... . Github themselves tried to push the change on people, and reporting on the issue used phrasing describing the original choice as "no longer appropriat…

[flagged]
Post reply on HN