Live data from Hacker News

“I'm basically giving myself a permanent vacation from being BDFL”

mail.python.org

61–70 of 764 posts

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#61

What was the issue that was evidently so contentious that it made him wish to step down?

(a := b) rather than a = b Naturally people went to the barricades for it, in a classic example of bikeshedding and Wadler's Law (programmers will fight to the death over trivial syntax disagreements and just shrug at profound changes to semantics and architecture)

> (a := b)

Will `with` start using this syntax instead of `b as a`: `with open('foo') as a:` == `with a := open('foo'):`?

Update: found my answer on the pep. `with EXPR as VAR` actually calls `EXPR.__enter__()` so it's not the same.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#62

Earlier quoted context omitted.

I'm a little confused though, by his feelings here. Why did he feel the need to "fight so hard for a PEP" if it was so controversial, and everyone was outraged? I do understand people's points about "the age of outrage" and "internet 2018" but still: the PEP wasn't generally accepted as being a fantastic improvement, so why did he feel the need to fight so hard for it?

It was controversial syntax, inline assignment-as-expression. There's always a tension between "keep it simple stupid" and "let's make it better", especially when a large user demographic of Python are non-professional-programmers. Interestingly, C++ is going through the same process, with lots of great ideas being proposed, but the sum total of them being an even more complicated language (on top of what is probably…

>Python 3 breakage and async turned out to be prescient, fantastic decisions.

Async maybe. Python 3 breakage? Did you forgot the /s tag?

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#63
post #42
post #15

Earlier quoted context omitted.

It's PHP and not Python, but every time I read something like this from a major open source figure, I always think of this old PHP mailing list thread: https://bugs.php.net/bug.php?id=50696

That's a good read. I feel like the "customer is always right" mentality does quite a bit of harm to OSS support. Also reminds me of that dev (who I can't seem to search up) who had their email printed as part of a open-source software license in a car manual and would get ridiculous email from people who had car trouble.

You're probably thinking of Daniel Stenberg of curl fame:

https://daniel.haxx.se/blog/2016/11/14/i-have-toyota-corola/

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#64
Guido's question gets to the heart of the problem:

"So what are you all going to do? Create a democracy? Anarchy? A dictatorship? A federation?"

No. None of the above. These are mechanisms which make choices when a choice must be made, even if none of the options is broadly acceptable. An appropriate mechanism for, say, governing a country.

Python isn't a country, it's just a programming language, so when there aren't any popular options _doing nothing_ is always the backstop. Does that mean that maybe, eventually, your programming language will shrivel away and become irrelevant? Yeah, it does. But again, not a country, just a programming language, use a different one.

Rough consensus is what you need here. PEP 572 never had rough consensus. Could it have obtained such consensus, someday, perhaps, with more work? Maybe, though I doubt it. But it didn't have that when the PEP was rammed through by the Benevolent Dictator.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#66
post #15
post #5

> I don't ever want to have to fight so hard for a PEP and find that so many people despise my decisions. Leading a large open source project must be terrible in this age of constant outrage :-(

It's PHP and not Python, but every time I read something like this from a major open source figure, I always think of this old PHP mailing list thread: https://bugs.php.net/bug.php?id=50696

"This is going to cause us MONTHS or fixing code for no real benefit since this behavior change is arbitrary and seemingly, was made for no reason"

Yeah, tough. Fix your code

That's the attitude some maintainers need in cutting unreasonable requests.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#67

Earlier quoted context omitted.

> The problem with the C-style of assignments is that it leads to this classic error: if(x = 0) {...} yeah, if you code on 20 years old compilers with no warnings. GCC 4.1 warns about this (with -Wall) and Clang 3.4 warns about this too, without any warning flag.

I think that having strong opinions on how others should be developing software is how communities become toxic like this. "Shooting yourself in the foot is your fault for not using a linter that detects accidental misuse of assignment!"

> I think that having strong opinions on how others should be developing software is how communities become toxic like this.

Depends on what you think the answer to "is programming an art or a science" is. People who build bridges are absolutely subject to "strong opinions" on how to build bridges. I am of the opinion that shipping software to others when under a contract without using all the facilities available to prevent problems - linting, static type checking, etc - should be considered at best a breach of contract and ideally criminal negligence.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#68
post #27

Background ("PEP 572 and decision-making in Python"): https://lwn.net/Articles/757713/

> The problem with the C-style of assignments is that it leads to this classic error: if(x = 0) {...} yeah, if you code on 20 years old compilers with no warnings. GCC 4.1 warns about this (with -Wall) and Clang 3.4 warns about this too, without any warning flag.

Not having a problem in the first place is preferable to fighting it with tools. == vs = is a classic mistake that I'm sure every C programmer has wasted some time on. (I'm just undecided if I prefer dealing with this very problem occasionally, or choosing either of the verbosity of := assignments or the non-orthogonality of = assignment statements plus := assignment expressions.)

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#69
post #5

> I don't ever want to have to fight so hard for a PEP and find that so many people despise my decisions. Leading a large open source project must be terrible in this age of constant outrage :-(

I'm a little confused though, by his feelings here. Why did he feel the need to "fight so hard for a PEP" if it was so controversial, and everyone was outraged? I do understand people's points about "the age of outrage" and "internet 2018" but still: the PEP wasn't generally accepted as being a fantastic improvement, so why did he feel the need to fight so hard for it?

That's the very point of a bdfl : it assumes he knows better than others. Debating is for insight and cortesy, not mandatory.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#70

Earlier quoted context omitted.

I'm a little confused though, by his feelings here. Why did he feel the need to "fight so hard for a PEP" if it was so controversial, and everyone was outraged? I do understand people's points about "the age of outrage" and "internet 2018" but still: the PEP wasn't generally accepted as being a fantastic improvement, so why did he feel the need to fight so hard for it?

It was controversial syntax, inline assignment-as-expression. There's always a tension between "keep it simple stupid" and "let's make it better", especially when a large user demographic of Python are non-professional-programmers. Interestingly, C++ is going through the same process, with lots of great ideas being proposed, but the sum total of them being an even more complicated language (on top of what is probably…

> Python 3 breakage and async turned out to be prescient, fantastic decisions.

The jury is still out on the Python 3 decision, to be honest. Heck, Python 2 is still officially supported until 2020.

Python 3 adoption is increasing, but the instability and breakage that it introduced caused a lot of knock-on effects throughout the Python community that held it back and hindered its adoption and mindshare. It'll take a while before we can really say whether the long-term gains will make up for that.

Post reply on HN