
“I'm basically giving myself a permanent vacation from being BDFL” - randlet
https://mail.python.org/pipermail/python-committers/2018-July/005664.html
======
sametmax
As a personnal note, you could feel that guido was already in this mood for a
while from the tone of the last year tickets and mails.

It's amazing he managed to not explode at somebody. I know i would have if our
roles had been reversed in some exchanges we had.

Good writers, comedians or directors know when to quit at the top their
carreer.

I think he is quitting before the situation was too taxing and that is wise
and courageous. Espacially since it's been more than 2 decades of service.

Plus he is leaving his baby.

That's an amazing move.

~~~
Havoc
>It's amazing he managed to not explode at somebody.

Like a certain other BDFL occasionally does?

~~~
IgorPartola
Don’t know why you are being downvoted. Linus’s tirades and diatribes are
famous for how brutally personal they get. I still maintain that they are a
waste of time and he would be a more effective leader if he limited his
responses to “this is a bad idea” or “this isn’t done right” instead of
writing pages long personal attacks on other members of the project.

~~~
raverbashing
> if he limited his responses to “this is a bad idea” or “this isn’t done
> right”

And then people keep wasting his time insisting on a bad idea

Cultural differences and all that. A good 'perkele' will be enough to get the
point across in most cultures, even if some leave a bit disappointed.

~~~
gkya
It is easy to filter such people out. Especially if it is email the sole
medium of contact.

~~~
yebyen
You want him to spend some of his time maintaining a block list of his
professional volunteers that sometimes have bad ideas?

How long do you stay on the list? And doesn't this assume that every idea that
person has is bad? What happens when some good ideas are caught in the net?
(And what happens when someone goes off and grabs help to implement the bad
idea, because you weren't there anymore to tell them again not to do it that
way? Or worse, what if they come around to your point of view, but can no
longer reach you?)

Wouldn't it be better to just say no, emphatically, and in a way that is
clearly and unambiguously no? (I don't think it _absolutely has to be_ a
personal attack, but at least it's not passive-aggressively putting your ideas
into a blackhole echo chamber...)

~~~
gkya
I agree you, I assumed an incompetent/malevolent/sociopathic contributor that
everybody would want to avoid. A toxic person that is.

In the case you talk about, I think it's easy and effective to put forward
one's thoughts with simple, clear language that's formal enough for the public
mailing list of one of the most important open source projects on the world,
in all of computing history.

We tend to think in extremes: either be "PC with sugar-coated words" or insult
people for their defects in public. No, there's a middleground where one can
be an effective maintainer and still possess some humane virtues. Simple: you
bring me some code, I find it dumb, idiotic, or what not; I have two options:
I can tell you that the code is buggy/mistaken/&c and either reject it or
request improvements (remembering also nobody, including me, is born an
expert, and lives without mistakes); or I can tell you that you're dumb, tell
you to fuck off, to shut the fuck up, and maybe insult your family. I'd guess
you'd rather want to face the first way of communication.

If a person can not communicate, they should not be a core developer of
anything anyways. Teamwork is 80% communication and 20% actual technical work.

~~~
yebyen
You don't say it out loud ("fuck off and die"), but when you exercise a block
list, or mute or ban someone on a board, the net effect is the same. IMHO
actually it's probably much worse.

Sure, maybe egos are bruised, but nobody's contribution or community standing
is actually harmed by "fuck off and die."

A person who is banned, on the other hand, has no choice but to basically
"fuck off and die." You think you're making the board more polite, but
actually you just told that guy overtly through a policy enforcement action
that his ideas or person are so bad that the ideas are not worth reviewing
anymore.

OK, I agree with you too, in principle at least, I would rather not be on the
receiving end of the "fuck off and die" and I wholeheartedly agree there's a
nicer way to say it. But I hope I'm being clear, that personally, I'd really
have _rather you just told me_ to fuck off and die.

The block list was your idea now, and I think I want to dwell on it, because I
don't agree with the premise that there are toxic people to merit the
existence of a block list.

> And then people keep wasting his time insisting on a bad idea

You said it yourself, "one of the most important open source projects in the
world" – Linus is much more successful than you or I, so we can afford to be
charitable with our words and our time. I'll defer to reserve judgement on
Linus because right now we're still talking about how you handle people with
bad ideas. I want to say my feeling that you must not do it with a block list.

The banned person is no longer able to provide any further benefit to the
group. Maybe you have an actual toxic person and you find yourself in a
position to ban them, ok go ahead and do it. I hope you won't misuse this
authority to ban someone unfairly whose ideas are simply very bad.

But let's say you ban someone and actually misjudged, and it wasn't really the
person that was toxic, just the idea; the contributor with bad personality or
ideas can probably still be rehabilitated in the group! But first they must
admit their mistake, or at least receive a stern admonishment.

So let's assume, charitably for Linus again, that it was actually a toxic idea
that provoked the "fuck off and die." I prefer not to admit that there can be
any toxic people until it's absolutely necessary. Maybe he is toxic. I am not
in a position to ban, block, or kick him, (or anyone else,) from anything. So
I'm not sure it could matter if I was to come to the conclusion that he was
toxic personally, obviously you're free to argue that or not.

All I'm saying is that once you admit that both people and ideas can be toxic,
it's very easy to make this mistake. So I'd prefer to grant that people are
not toxic as a rule until it's a proven fact that simply can't be discarded.

~~~
gkya
I guess I have failed to explain myself: I think bad _people_ (trollish,
insistent, selfish, &c) can be banned, and that is more effective than
insulting. Bad _ideas_ on the other hand, should _not_ get people banned, but
criticised &or refused in a clear, non compromising manner.

~~~
yebyen
No I don't think you have failed to explain yourself, but I think it's quite
possible that we still have a fundamental disagreement about how liberally and
when to apply bans.

I don't agree that we were ever talking about bad people until you introduced
the notion, and the conversation does not need to be about Linus, but if it
was... he is not accused of chastising bad people, he's chastising people with
bad ideas. You suggested that he filter them out if they persist, and I
basically equated that kind of filtering as like a ban, that I would never use
as a community leader.

I'm sorry internet stranger, but I don't feel confident in (your or my)
ability to effectively distinguish objectively between a contributor who is
(trollish, insistent, selfish etc)... vs one who is being (persistent,
uncompromising, a bit stubborn, maybe snarky once in a while, or playing
devil's advocate for argumentative purposes, etc.)

Those adjectives can convey opposite subjective opinions in the same objective
reality, and the side you choose to be on may depend on simply whether you
like the person or not. Is it a ban-worthy offense or is it exhibiting
decisive leadership qualities? Well I think that probably depends on whether
or not you'd be the one laughing if I said "fuck off and die" just one more
time in this thread. You're arguing in good faith but I still disagree with
your conclusion.

We're arguing a hypothetical so I'm not sure either of us will convince the
other of anything, but here's my piece.

Five comments ago, you suggested filtering people who annoy you with their
persistent bad ideas in a professional setting, and I've done all I can to
argue that it's not a strategy that will ever work for Linus, and it's not a
good strategy for either me or you, you should not consider it.

"Go to HR" is the strategy for dealing with bad people in a professional
setting.

If someone's ideas are bad, you should not exile them from the community for
it, obviously. If you're serious about leading in a community, ask yourself if
you'd be willing to "walk this person down to HR" before you consider waving
around a ban hammer or filtering them out and ghosting, because that's exactly
like what you're doing.

Linus is not leaving LKML, and that's another topic. You'll have to filter his
mails if you find him offensive and you're on the LKML, let me know how that
goes for you.

You could also try to read past the insult, and divine the point that was
intended to be heard, and take it to heart.

An insult from Linus is like a blessing. He just doesn't give them to anyone.
But I'm not here defending Linus.

~~~
gkya
We disagree indeed, and that was foreseeable. I just wanted to clarify my
words.

I'm not on the LKML and most probably won't ever be. But I generally say a
word or two about Torvalds' behaviour because he is a "role model" for
upcoming (and current) F/OSS maintainers, and I doubt he is a good one for
these growing communities to be healthy places. If he is fine, and his peers
are fine, I don't actually care about them as long as they are pushing
bugfixes to the kernel.

------
kamyarg
It is sad but needs to happen with every BDFL, I really like the tone of the
email and I am sure the python core devs would figure out something. :)

Finally, Guido if you are reading this, thanks for everything you have done
for the language and especially the community behind it. I partly owe loving
what I do to you. Hope taking this break would help you be happier.

~~~
shams93
Yes thank you Guido! I started working with python back in 1999 working with
zope, now we live in a much easier world where you have many options to deploy
python applications, my boss wound up rejecting my project but working with
python was just as amazing in 99 as it is today its just so much easier you
can see all the work and more importantly love that has been put into the
language since its inception. Thanks again Guido for all your amazing work!

~~~
emodendroket
I have really horrible memories of trying to keep a Plone site in prod from my
sysadmin days.

------
theandrewbailey
Python was my first programming language, ~15 years ago. The bracket- and
semicolon-free syntax is beautiful and approachable to this day. Python is my
go-to for writing data format conversion scripts. I wrote a random sentence
generator in Python 10 years ago that gave me and my friends hours of
entertainment.

Thanks, Guido, for the good times!

~~~
fit2rule
I can never get into Python and end up with as much passion as you. For me,
its a very powerful and useful language - no doubt about it.

But the aesthetics of a whitespace language just don't jive with my 30+ years
of experience writing code. No matter how many times I try over the past few
decades, I just can't get passionate about writing Python code. I know its
power, and I totally grok its value to our industry - but for me, Lua is just
far more elegant, even if it doesn't ship with all of Pythons' goosebridles.
Lua is my go-to scripting language; I only ever use Python if I have to - i.e.
its enforced on me by others.

I really do try to get over this personal handicap, often enough, but the
moment I have to start thinking about indentation I just lose all the passion
and it starts feeling like a drag. What a dilemma, because I know it has been
used for many, many great things .. I just wish I could get over my aversion
to white-space'ing things all the time. I've tried editor after editor (well,
expect the Python-specific things), but it just doesn't click.

Ah well.

~~~
patejam
The indentation should be almost the same as any other language. Unless you
have an aversion to consistent code-style.

Python whitespace was only annoying for me years ago when it still had trouble
handling tabs and spaces in the same file, and you would run into literally
invisible bugs. I haven't run into that in a long time, though.

~~~
rabidrat
It's also basically impossible to cut-and-paste code from a web forum. Was
that "else" from the inner or the outer "if"?

~~~
gerdesj
That could be considered a feature. At least you have to read what you have
copied and pasted.

~~~
rabidrat
That's cute but I hope no one reading this thinks you are being serious. If
they do, to wit:

So many webforums strip leading indents from code. It's not like it looks
right on the forum, and then gets inserted into your editor wrong. It's often
not right on the source side either. So if you're trying to learn an algorithm
from the Python code, you're SOL. This has happened to me.

~~~
gerdesj
It isn't cute at all and I am quite serious. It is an accident that Python
syntax pitted against sufficiently unsophisticated code displayers causes copy
n paste breakage.

However, that breakage does mean that you have to at least read the code a
bit. You either get to avoid a potential security flaw or gain a deeper
understanding of an algorithm.

Fixing syntax does not break your ability to learn an algorithm but it will
get you closer to its description.

With Python you are generally SIL not SOL.

------
krylon
I haven't used Python in many years, but it was the first programming language
I really could say I loved. Everything was was either completely in tune with
my intuition or well-documented.

I had a lot of fun with Python, and I learned a lot about programming by
(ab)using it. I am very grateful to Guido van Rossum and the work he has done,
and I wish him all the best for his future.

~~~
jessaustin
I totally agree with this. In 1999 I had only used C and shell (well lisp a
little bit in college), and python was such a breath of fresh air...

~~~
Keyframe
Even though I am hardwired to C and 'thinking like a machine would/prefers',
python was probably the first and only language I didn't feel like it was a
programming language at all. Always when I write something in it, it's always
'huh, and that's it? I'm... done?'. Sure, it's equal part due to language and
'batteries', but neither would happen without GvR and awesome community that
built around his project and him. Python, to me, is like lisp without parens
and with libraries - the future we were promised. Only thing I, personally,
can't do is write large(er/ish) codebases with it. I tend to get lost, but
that's probably due to my C-like brain. In any case, thanks for everything!

~~~
nikofeyn
how is python like lisp?

~~~
wrmsr
It's lisp without the curse. You have an arbitrarily dynamic runtime but
enough structure and cultural idiom against abusing it that it has flourished.
Compare for example type annotations in python versus those in clojure -
clojure's expressivity and the culture's tendency to use it pervasively make
meaningful annotations much more difficult than in python, even with python's
crazy calling convention. Additionally a lot of my data processing python code
winds up feeling very lispy - arbitrarily deeply nested iterator pipelines
transforming dumb and often immutable data. We largely do this in python
because smart objects are slow not out of any pursuit of purity, we have a
thriving ecosystem of these kinds of libraries, but the end result feels
vaguely similar either way.

~~~
armitron
Python is nothing like Lisp, please stop with the generalizations. When it
comes to stupid comparisons, Ruby is more Lisp than Python, at least it's got
Symbols.

Python is not homoiconic, it doesn't have {reader/compiler/normal}macros, it
doesn't have symbols, it doesn't have proper lexical scope, it doesn't have
dynamic scope, it doesn't have conditions and restarts, not every statement is
an expression, it's full of special cases and is monstrously complicated if
you look beneath the surface [thus all the hacks in PEP form].

How is it Lisp when it doesn't have the special magic that makes Lisp so
powerful?

------
adamnemecek
Even though I write python only if it’s going to be like 200 loc tops, it’s
insane how gracefully the language has aged. It came out in 91, thus predating
for example Java. Fun fact, I believe the very first google scraper was
written in it.

At the same time I can’t wait for the next language to replace it.

~~~
sametmax
People often don't realize this. We hear a lot that python is moving too fast
or too slow. To say that disregard the delicate balance the language had to
dance on for 20 years. It's crazy.

~~~
adamnemecek
Agree but it’s closer to 30.

~~~
brettcannon
28 if you want the exact number. :) Guido started developing Python in
December 1989 and went public with it on Usenet in February 1991 (Unicode 1.0
was standardized in October later that year to give perspective of how far
back that was in the tech world).

------
password4321
> _Now that PEP 572 is done, I don 't ever want to have to fight so hard for a
> PEP and find that so many people despise my decisions._

PEP 572: Python assignment expressions has been accepted

[https://news.ycombinator.com/item?id=17448439](https://news.ycombinator.com/item?id=17448439)

~~~
ehsankia
Is the final syntax := surrounded by parenthesis?

~~~
hermitdev
Yes

~~~
int_19h
If the PEP that's published is final, then it only requires parens in certain
context to make things clearer, like on the right side of the assignment
statement.

------
sametmax
It's going to be very interesting to see if things like:

\- pattern matching

\- inline exception catching

\- path inclusion in the built in

\- more functional tooling

\- lazy keywors

That were BDFL-blocked, will go back to be debated in the mailing list in the
next months.

And if yes, will the community stands by its root or create a new era ?

The consequences of which we will only really see in 10 years.

Guido as done an incredible job at being the boogie man, keeping the language
simple and readable. It's a hard job.

Can we pull it off ?

~~~
bluecalm
I think he made a right call blocking all of those. There are Pythonic ways to
do all of those already and the mantra there should be one and preferably one
way of doing things is important for the philosophy of the language.

With PEP 572 it wasn't like that. There wasn't a Pythonic way to do list
comprehensions which used the same expensive to evaluate expression two times
in it and it was I think the only glaring syntax weakness in comparison to
languages which have a way to do that (like WHERE keyword in Haskell).

~~~
rthomas6
What's the Pythonic way of pattern matching?

~~~
owaislone
A dictionary of string: functions I guess? Don't think there is a decent one

~~~
marcosdumay
That's parametrized jumping. Pattern matching is parsing a structure with
variables and filling those variables from a single structured value.

Python does that with tuples:

    
    
        a, b = b, a
    

But it just stops there. To be fair, I don't know how much power it would gain
by going further either. Never made that question.

~~~
joshuamorton
That is more commonly known as destructuring. (in python and javascript at
least, as well as a few others iirc)

Pattern matching is normally (in functional languages like Scala and Haskell
anyway) defined as a way of taking a union type and handling each one safely.
It's a sort of functional alternative to polymorphism.

That is, polymorphic code

    
    
        class Dog(Animal):
            def make_noise(self):
                return "bork bork"
    
        class Duck(Animal):
            def make_noise(self):
                return "quack"
    

would, with pattern matching be (in pseudo haskell I hope)

    
    
        make_noise :: Animal -> str
        make_noise Duck = "quack"
        make_noise Dog = "bork bork"
    

In other words, in an oop style you delegate to the object that it implements
all methods. Whereas with pattern matching you can have a type delegate to
each of the functions that can operate on it to handle it correctly. (This
explanation is a disservice to functional styles, its a lot more elegant than
what I describe if you do it correctly).

~~~
idontpost
So basically Clojure protocols? As in, multimethods that dispatch on the type
of their first argument?

~~~
joshuamorton
Except that assuming Animal is a sum type (kind of like an enum), the computer
will complain.

So a maybe type (equivalent to an Optional) is simply a sum over just and
nothing (the two components). If you fall to handle nothing, the program won't
compile.

Animal would work the same way. Add "Cow" as an animal, and your program won't
compile until everything sanely handles Cow.

So more like a switch case over a set of options where the compiler prevents
you from forgetting any.

------
randomsearch
Excluding the 2/3 debacle, Guido has overseen an incredible progression in
Python. It has become a contemporary lingua franca for coding, and the concept
of a “pythonic” approach has been hugely influential.

I’m disappointed that he broke Eric Raymond’s rule: “When you lose interest in
a program, your last duty to it is to hand it off to a competent successor.”

The email sounds bitter, which is tremendously sad, and I hope that after a
break Guido will be able to oversee a more constructive transition.

~~~
OmarIsmail
My guess for lack of successor is that he doesn't want to burden someone else.
It's probably one of those things like being a head of state where you don't
really know what it's like until you've done it yourself. So people that want
to be Python maintainer do so because they don't know what they're asking for.

~~~
uluyol
I saw it more of being that he doesn't want to impose a particular style of
governance after removing himself from the project. The remaining devs should
run it however they see fit.

------
js2
Background ("PEP 572 and decision-making in Python"):

[https://lwn.net/Articles/757713/](https://lwn.net/Articles/757713/)

~~~
jcelerier
> 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.

~~~
Waterluvian
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!"

~~~
TooBrokeToBeg
I'm still puzzled to why would a compiler allow assignment in an explicit
conditional (outside of loop syntax). It's like a baked-in blindspot that most
people just want to ignore for some reason. Some languages actually guard
against this well enough (eg Kotlin) and say "don't". Even with guards in
place, it's not all that complicated to work around in the edge cases where
you might want to do it.

~~~
kelnos
Because assignment is an expression. It has nothing specifically to do with
the position being a conditional.

Conditionals need an expression, and assignment fits the bill, so it works.

~~~
TooBrokeToBeg
> Because assignment is an expression. It has nothing specifically to do with
> the position being a conditional.

No, but it has a lot to do with the way humans write code. This is the source
of the bug, not the logic. eg Why bother having whitespace that the compiler
can't use (typically)? Human readability.

The concession to not take into account human failing, is pathological.

------
everdev
Open source burnout is real. I'm sure the allure of giving back by creating
something useful fades when people constantly criticize your work, especially
when you look at the personal and professional sacrifices you're making to
produce free software.

~~~
zbyte64
One of the pycon keynotes (by Brett Cannon) was on civility in open source:

[https://youtu.be/tzFWz5fiVKU?t=2785](https://youtu.be/tzFWz5fiVKU?t=2785)

If you're a little abrasive (as I am) then I recommend giving it a watch.
There's nothing wrong with being right but you don't want to jeopardize the
respect and community by not recognizing others in a response.

------
at-fates-hands
When I first started getting into programming (was not a CS major in college)
_everybody_ said to start learning Python first.

I started digging in and a lot of concepts were easy to grasp and I learned
quite a bit until I started doing front-end work and I stopped working with
it.

This year, my buddy who got me into it originally, suggested I look at django
and I've been having fun with that in the past few months. Made me think about
picking Python back up and working with it again as the front-end scene is
just so crazy right now.

~~~
hermitdev
I learned Python ~14 years ago. I already had decent C, C++ & C# knowledge,
plus a handful of assembly languages. I already knew how to program, but was
taken aback by how approachable Python was. I can't remember if I started on
2.2 or 2.4, but I basically learned 99% of what I needed to know in the first
few days. In the last 14 years, I've written a significant amount of Python,
mostly for work (finance/trading). It's no exaggeration to say that my Python
apps had billions, even trillions of dollars worth of
orders/transactions/contracts flowing through them, and Python was rock solid
for me every time.

It's still my scripting language of choice. I'm still more likely to rewrite a
Perl script in Python than I am to try and make any significant change to the
Perl script. I like the "batteries included" approach, and that the Python
devs prefer to add new features via libraries than new obtuse syntax. I think
most of the recent syntax changes were well deserved and wouldn't otherwise
have been well served by a library (thinks like async, context managers, and
going back further generators and the if/else ternary expression).

Also, I'm almost exclusively on Python 3 now. The only real issue I've had is
constantly needing to remember how to properly open a CSV file for reading (I
really don't know how they let that wart live for so long).

------
bla2
> 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 :-(

~~~
sjm-lbm
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](https://bugs.php.net/bug.php?id=50696)

~~~
Y_Y
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.

~~~
krylon
OTOH, way back, when I had a TV receiver card by Hauppage, and a new Linux
kernel broke something, I posted a description of my troubles on Usenet, and
within 24 hours, the person who had written the Video4Linux subsystem replied
asking for more details (which I gladly provided), and a few days later, the
bug was fixed.

That, I think, was the most awesome "customer support" experience of my life.
I did make a point of being polite about it, however, which I consider a
ground rule for dealing with people, especially if I want something from them.

But it was so awesome to post to a random usenet group about a driver problem
and have the person who wrote the driver personally approach you for details.
You don't get that with Windows, for sure. ;-)

~~~
kwhitefoot
I had the same experience. Suddenly Emacs Gnus reader stopped working, about
11:00 on a Friday morning. I posted the bug and had a reply from Lars
Ingebrigtsen with an explanation and a workaround by 13:00. I think it was
fixed by the beginning of the following week.

My experience of trying to get help from Microsoft on the other hand is, well
let's just say not quite so impressive; they kept me on hold for 45 minutes
once and never did solve my problem.

~~~
undseg
Back in the days Microsoft would have amazing customer support. And I'm
talking about "API customers", many times I've seen them go out of their way
to fix third party programs not working correctly by adapting their platform,
it was a very efficient process. I guess that doesn't work as well at their
current scale, or they care less because they're not building up market share.

~~~
TheDauthi
They once shipped my company a custom MSVCRT.DLL to fix a crash bug in a
third-party application under heavy load. True, it was a bug in the C runtime
itself, but they got us a fix for it about a day after we (along with the
third party) got in touch with them.

Just a few years later my team had to contact them for a BSOD that kept
happening after one of their patches. We were put off for about a week before
throwing our hands up on it.

------
BerislavLopac
I'm not at all optimistic about this. I understand Guido's motives and
sympathise with him, but I'm afraid this will have a very detrimental effect
on Python and how its development is managed.

He says: "... I don't ever want to have to fight so hard for a PEP and find
that so many people despise my decisions." I can only imagine what might
happen without a single decision-maker -- just think of all the vitriol that
was thrown about the migration to Python 3. At best there will be endless
discussions, often being decided in favour of whoever was the loudest and most
aggressive on the mailing list; at worst, we might end up with multiple
competing forks of Python specification and implementations...

I'm hoping that the PSF will be able to elect a single "product owner"; I
don't expect them to have the same amount of influence and respect Guido had,
but it would be a good start.

~~~
elmozyz
Unfortunately, electing a single product owner is now a decision the core devs
will have to weigh in on - which means it wont happen. Design by committee is
a terrible way to run Python

------
jVinc
All this over a god damn bikeshed that no one will care one way or the other
about 6 months after its implemented. He didn't loose faith after the 2->3
transitioner but but a goddamn assignment operator that works just like so
many other languages.

I mean it was bound to happen at some point, but I am really disheartened that
it happened in this way.

~~~
kolpa
Python's original "sales pitch" was that it was a clean and simple language.
As years go by and more weird stuff is piled in, it becomes less Pythonic.

~~~
antt
I forget which book this was from, but when I was learning python back in 2003
a major selling point was 'you can't make assignments in control structures'.
Happy days to a physics undergrad who had seen more if(a=3) in C code than he
could shake a stick at.

Sometimes less is more. Python is turning into more is less. It doesn't need
to be everything to everyone.

------
deckarep
Sorry Guido but it’s BDFL — for LIFE! Just kidding and Thanks Guido for all
you’ve done for the Python community.

~~~
hiccuphippo
But he is still the BDFL, he's just on permanent vacation.

~~~
deckarep
Have you tried reaching software engineers on vacation? “Sorry I’ll be camping
on some rock on Mars where I’ll have spotty internet access so....”

~~~
raverbashing
Whenever they say that they either mean they only have 2G connection or they
somehow managed to get a Gbit satellite phone so they could be online several
hours a day from the woods

~~~
cuckcuckspruce
Am I one of the few that is away from work when on vacation? I don't even
bring my work phone unless I'm more than an hour's drive from my house.

When I'm on vacation, I'm working on me. Not for the company.

------
loa-in-backup
For what it's worth, the variant of syntax Guido pushed is a really good
choice and the fact that the mailing list "widely opposed" it only tells of
the participants.

This is just my personal opinion.

------
rurban
Now this is a very dangerous situation, looking how perl5 was handled after
Larry wall left them and stepped over to perl6.

Constant infighting of the core devs, useless communication on the mailing
list, not a single worthwhile feature being implemented in 15 years, even if
perl6 and Larry designed tons of them suitable for perl5, total destruction of
the syntax and the core. The better counterexample was perl6 with stricter
processes and some capable devs remaining, but still it's another minefield.

Good luck, tons of work to do. python 3 could get 10x faster and catch up to
php7 or javascript, types could get properly integrated but I don't see it
coming. Usually you have to expect the worst.

~~~
SwellJoe
I think had it been a more clear demarcation, like this, Perl 5 would be in
much better shape today. Perl 5 has been doing well for a few years now, but
it took a while for the Perl 5 developer community to fill the void left by
Larry; there just wasn't an acknowledgment that there was a void to fill.
Larry didn't die, still kinda paid attention to Perl 5 for a while, but his
heart wasn't in it and his attention eventually shifted fully to Perl 6.

Now, the Perl Pumpking (a sort of Benevolent Punching Bag for the Next
Release; they do have the ability to decide which patches go in, but usually
don't wield it like a dictator) along with the dev community, does their
thing...the pumpkin gets passed along every year or three, and things
continue. And, Perl 5 is developing nicely in a way that it didn't for about a
decade while there was so much uncertainty. The Pumpking existed before Larry
left Perl 5, but acted more in a support role (as I understand it), so it
seems like it took a while for it to become an acknowledged executive position
when Larry faded from view in Perl 5 development.

I think Guido is doing the best thing for Python. If his heart isn't in it,
stepping back in a clear way is much more helpful that drifting away and
leaving a void of leadership with no one feeling empowered to step up. There
are people who are recognized as being contenders for the throne, and there's
already a long-standing community process. I think Python will be fine.

------
amag
Python is the language I chose to teach my 7 yr old daughter. Much thanks to
the uncluttered syntax which requires a minimum number of explanations of non-
essential parts of a program.

Thanks Guido for giving us Python!

------
21
As someone who used Python for more than a decade, a few months ago when I saw
PEP 572 and that Guido liked it I knew that it would be by far the most
controversial one ever.

And I was very concerned that there was no outside community involvement. This
is one where there should have been a lot of publicity around, and the
community should have been asked (on r/python, r/programming, HN, ...)

It's sad to see this, but it's not surprising to me. In general the Python
community at large accepted Guido's decisions, but this one was too much of a
shock, and when the python-dev discussions where so heated, you can only
imagine the response from outside.

~~~
cowpig
I honestly don't understand why it's so contentious, despite reading the
lwn.net article about it[1]. It just looks like some syntactic sugar to me,
and I've been in the position where not having that sugar has felt awkward
many times writing python.

[1] [https://lwn.net/Articles/757713/](https://lwn.net/Articles/757713/)

------
Communitivity
This is sad to see, but necessary at some point, as others have said. We
should all thank him for his contributions, and for the advances in data
science experiments enabled by Python's ease of use, good design, and advanced
features.

I am glad that Python is recognized as the quality language it is.

Perhaps it's synchronicity that in other news this week Elon Musk triple
hearted Python,
[https://twitter.com/elonmusk/status/1016002749446516737](https://twitter.com/elonmusk/status/1016002749446516737).

------
whalesalad
Yikes. Python has become so hugely popular and is used for so many different
use cases that I fear the ecosystem is going to really struggle to find
consistency and direction without a dictator.

~~~
LyndsySimon
Maybe we'll try something like a triumvirate? As best I can tell there are
basically three areas where Python is dominant: web, data science, and
academia. A single leader for each of those spheres could form a council where
BDFL-level decisions could be made by fiat.

Each community could then form whatever organization they felt necessary to
choose who to send to the triumvirate.

As as check on the power of the triumvirate, we could have something like a
"Tribune of the Plebs" \- a representative elected by open election from the
entire community that holds veto authority over changes approved by the
triumvirate.

~~~
swyx
you're missing a body that can decide in case of implementation disputes over
the other two. we could even compare it to a court. since python is so huge,
we would have several levels for triaging and appeals. and the top one would
reign supreme.

~~~
LyndsySimon
This would be the that body - it would be the final arbiter of what gets
approved. The Tribune of the Plebs would not be able to approve anything at
all, but would be able to unilaterally refuse to allow changes to be made.

The UN Security Council is somewhat similar in that respect, though comprised
of more members. New matters are approved by majority vote, but the five
permanent members can veto anything that gets approved.

My proposal is somewhat tongue in cheek, hence the names from the Roman
Republic - but I do think the idea is sound.

An alternate, simpler implementation would be to simply require that all
changes be unanimous. I like the idea of a Tribune of the Plebs though because
it gives a second means of a voice should a sizable minority of members of the
sub-communities strongly disagree with the direction of their representatives.

~~~
swyx
TIL Tribune of the Plebs was a real thing. I was just parsing plebs as
internet lingo for commonfolk :)

and in case it wasnt clear i was referencing the US tripartite governance
model

------
smithmayowa
It is Great to see the speed at which wikipedia has updated this occurrence.
[https://en.m.wikipedia.org/wiki/Guido_van_Rossum](https://en.m.wikipedia.org/wiki/Guido_van_Rossum)

------
jacquesm
Reading that thread is like reading an actual Monty Python plot.

Guido van Rossum has given his life for this language and besides the
obligatory 'thanks for all the fish' there isn't even a single person who
stops the clock to evaluate _what went wrong_ that they pushed out the person
that started this all.

Instead it's 'kthxbye' and they're already dividing up the cake to see who
gets to rule.

Not the nicest moment in the history of FOSS, I wonder what kind of a mess
will ensue when Linus steps down.

~~~
tptacek
What are they supposed to do? Python is bigger than GvR. A pretty big chunk of
the tech industry depends on it. We were probably long past the point where a
"BDFL" was healthy --- not because of any moral issue, but because over the
long term the market is going to dictate where Python goes and how it grows,
and people should stop kidding themselves that it might be otherwise.

I don't think it's at all unseemly that people involved in the Python project
respond to GvR's LOA announcement by working out continuity. As someone who
has to interact with a lot of Python code professionally, that's exactly the
response I'd hope for.

~~~
xg15
> _but because over the long term the market is going to dictate where Python
> goes and how it grows_

The market gave us the absolute mess that is HTML/CSS/Javascript today, so I'm
sincerely hoping the Python community will keep agreeing on some greater
design principles instead of leaving everything to market forces and
pragmatism.

~~~
sneakermoney
"The market" took over after a long period of "design by committee" that had
"strong design principles"[1] resulting in something that was both inadequate
for what people wanted to do _and_ didn't evolve at a promising pace (likely
because of said principles).

When the market _did_ take over, the problem was that those poor foundations
weren't thrown out completely. You can only do so much by strapping turbines
on a camel (no offense to camels). At least we can actually write (mediocre)
applications with HTML/CSS/JS now.

The other part of the mess is caused by the ever-growing amount of trend-
hopping junior developers that want to try out new things - and their
superiors letting them do it. If the foundation wasn't so bad, there would be
less incentive to try and re-invent anything. Other platforms are fully
market-driven, they didn't produce such a mess, because the market rewards
_stability_ (hence the low initial adoption rates of Python 3).

[1] [https://www.w3.org/People/Bos/CSS-
variables](https://www.w3.org/People/Bos/CSS-variables)

~~~
xg15
> _" The market" took over after a long period of "design by committee" that
> had "strong design principles"[1]_

Yes, but a committee (or a community if that term has too many bad
connotations) can at least argue about the design principles and on occasion
decide to change them using a well-defined process (e.g. rough consensus or
voting).

> _When the market did take over, the problem was that those poor foundations
> weren 't thrown out completely._

The original plan of the W3C TAG _was_ to pull the foundations and make a
fresh start with XHTML2. The browser vendors objected to that and chose to
instead evolve the original HTML into what we have today.

> _The other part of the mess is caused by the ever-growing amount of trend-
> hopping junior developers that want to try out new things..._

But that's the point. Those trend-hopping junior developers and their bosses
_are_ the market: If you view programming languages as products, those are the
early-adopters, one of the generally most sought-after part of the customer
base. If you want to be 100% market-driven, you have to listen to them.

> _...because the market rewards stability_

The market apparently didn't bother much that HTML is now a "living standard",
browser release cycles are measured in weeks and generally a software is
considered dead if it doesn't receive any more updates.

~~~
sneakermoney
> Yes, but a committee (or a community if that term has too many bad
> connotations) can at least argue about the design principles and on occasion
> decide to change them using a well-defined process (e.g. rough consensus or
> voting).

The underlying assumption here must be that this somehow leads to better
results overall, but where's the evidence for _that_? "Design by committee"
has a negative connotation for a reason.

> The original plan of the W3C TAG was to pull the foundations and make a
> fresh start with XHTML2. The browser vendors objected to that and chose to
> instead evolve the original HTML into what we have today.

That's because "the market" doesn't want things to _break_. Like I said, it
should've been thrown out, but for obvious reasons it wasn't. The point is,
you can't blame "the market" for having created the mess in the first place.

> But that's the point. Those trend-hopping junior developers and their bosses
> are the market...

They are a force within that market and it _just so happens_ that so many new
people come into the industry because "web stuff" is needed now, but it won't
be growing like that forever. These young programmers will grow old and tired
(and so will their bosses) and at that point conservatism will settle in, like
it has in many other areas as well. It's a market _fluctuation_.

> The market apparently didn't bother much that HTML is now a "living
> standard", browser release cycles are measured in weeks and generally a
> software is considered dead if it doesn't receive any more updates.

The pace at which new browser features are adopted is actually rather slow,
but more importantly, old stuff usually doesn't break. For example, jQuery
might be outdated from a developer perspective, but it still powers a lot of
stuff.

------
nopacience
Guido van Rossum, "the creator of python", created the following page to show
he has aged over the years:

[https://gvanrossum.github.io/pics.html](https://gvanrossum.github.io/pics.html)

I prefer perl, but thanks for python!

Diversity is good always :)

~~~
nopacience
As a big influencer, Guido, "the creator of python", even inspired austin
powers character

Guido (1995)
[https://gvanrossum.github.io/images/Guido@200dpi.jpg](https://gvanrossum.github.io/images/Guido@200dpi.jpg)

Austin Powers (1997) [https://m.media-
amazon.com/images/M/MV5BYWY1ZTdlZTEtYWRjOS00...](https://m.media-
amazon.com/images/M/MV5BYWY1ZTdlZTEtYWRjOS00OTE1LTg4NjgtYTA2M2I0ZjQ2MzAxXkEyXkFqcGdeQXVyNzU1NzE3NTg@._V1_CR0,30,250,141_AL_UX477_CR0,0,477,268_AL_.jpg)

~~~
webmaven
The real comparison should be with Rick Moranis:
[https://consequenceofsound.files.wordpress.com/2018/05/rick-...](https://consequenceofsound.files.wordpress.com/2018/05/rick-
moranis-as-dark-helmet-in-spaceballs.png)

------
slics
It takes someone dedicated to do what you have done for this long. You need
the vacation more than anyone else. I wish you had a tip bucket somewhere and
I’ll gladly donate for some of your vacation cost, simply a thank you tip for
your tireless effort.

------
agentultra
Thanks Guido. Python was my primary language from around 2004 - 2017. I've had
the chance to present at Pycon a couple of times and get my feet wet in
contributing to open source projects with Python. Best of luck.

------
gigatexal
Thank you Guido for creating and shepherding such an amazing language one that
has been my go to language for years for its ecosystem and it’s beauty.
Seriously thank you so much.

------
azhenley
Can someone paraphrase why PEP 572 was disliked by so many people?

~~~
js2
[https://lwn.net/Articles/757713/](https://lwn.net/Articles/757713/)

~~~
kevinwang
Thanks, that was a good summary

------
lifeisstillgood
To Guido, a career's worth of thanks (I doubt I would have had one without
Python) and for being encouraging and supportive to a very young dev at a long
ago conference - to keep that up over decades means encouragement, mentoring
and optimism was bred in your bones. Have a lovely permanent vacation.

To the python community, I hope we can find a successful, democratic way
forward.

To myself, public service is a good thing - try harder !

------
jasonkostempski
"bus lurking around the corner" caused me a Family Guy style flashback.

"Like that time [victim of an unsolved bus stop stabbing] was killed by a
bus." _victim sitting alone at a bus stop. glint of light from the dark alley
in back. bus jumps out, stabs victim. bus enters street, transforms into
normal bus, drives off._

------
realcr
Guido, thanks for all your work on Python. It made a huge impact on my life. I
have been writing python for the last 12 years and enjoyed every moment. For
many years Python was the best way for me to translate my ideas into a working
program, and it made a major effect on the way I think. I wish you great luck
on all your future endeavors!

------
linsomniac
[https://youtu.be/tzFWz5fiVKU?t=49m27s](https://youtu.be/tzFWz5fiVKU?t=49m27s)

Related: Brett Cannon's Keynote at PyCon 2018 about why he had to take a break
from Python core development. I was sitting with him before the talk, and it
was a really, really hard talk for him to give, emotionally.

------
anothergoogler
Am I mistaken for not considering this PEP (and all PEPs in general) as
strongly backed by Guido? I always assumed they were sort of design-by-
committee and that he approved of some more than others. Offline, in private,
I've been pretty critical of the change, but to me it was just another PEP.

------
K2h
So, not knowing what BDFL was, does wikpedia
[https://en.wikipedia.org/wiki/Benevolent_dictator_for_life](https://en.wikipedia.org/wiki/Benevolent_dictator_for_life)
now need to get updated?

------
leothekim
Python is certainly one of the more opinionated languages in the OSS world, so
there was always going to be contention on syntax and what it means to be
Pythonic etc. Kinda amazing Guido put up with it for this long.

Thank you, Guido, for putting the B in BDFL when you could.

------
Windson
Thank you Guido, [https://www.thankyouopensource.com/letter/280/Thank-you-
Guid...](https://www.thankyouopensource.com/letter/280/Thank-you-Guido!/)

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

~~~
Analemma_
(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)

~~~
fwdpropaganda
Damn dude...

I'm sick and tired of writing stuff like

m = f( <...> )

if m:

    
    
        # do stuff with m
    

Trivial as it may be, I for one welcome this.

~~~
nas
That's pretty much the main use of the new syntax. When you have a cascade of
regexes, it is even better:

    
    
      if m := re.match(...):
         ...
      elif m := re.match(...):
         ...
    

The world is not coming to an end, as some detractors of the PEP might think.
The new syntax is a win in a number of cases. Otherwise, you don't need to use
it. The concern for abuse is way overblown. I could live without it (voted -1
on the idea originally) but now that it is in, think it is fine.

------
aerovistae
Thanks Guido, for building my favorite language.

------
pnathan
Good for him! I hope he has a long vacation and enjoyment without the
responsibility.

As he says, the bus is around the corner, and the reaper comes for us all - so
governance is a key component of an institution.

------
abisxir
We started to program with python around 2009, and continued until now and it
is my firat choice for almost everything.

Thanks Guido for all the fun that we made with python and eased the life of
bankers :/

------
MrXOR
>(I'll spare you the list of medical issues.)

It is bad news, is Guido fine?

------
vladsanchez
I'm afraid this will be Python's demise. I've seen many non-Pythonic idioms
that I question PEP's rationale at this point.

------
parham
Thank you for all your efforts and hard work.

It has changed a lot of lives and will continue to do so for a long time.

Enjoy the vacation and take care of yourself.

------
tialaramex
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.

~~~
icebraining
Who decides when there's rough consensus or broad acceptance for a change? You
have a bunch of people with commit access to the python repository; of course
you need some mechanism to decide what goes in.

 _Rough consensus is what you need here._

Why?

~~~
tialaramex
A rough consensus is trivially observable. Look around. Who's left saying that
plan Foo is a bad idea? Just that one guy who is a total crank and thinks
Python shouldn't support 64-bit processors? Nobody cares about him. How about
people who think plan Foo is a good idea? Basically everybody who talked about
it other than the crank: OK, that's rough consensus.

If you have situations where your "bunch of people with commit access" aren't
sure if there's consensus then you don't have a consensus.

As to why you need it: Because unlike countries people have a real choice. All
your language users are volunteers. (No "Seasteading" and "Freemen on the
land" are not real choices). Not only can they freely choose another language
instead of Python, they can fork Python and go make their own instead, or
maintain the current code frozen in perpetuity.

Now, if there really is a 50:50 split between people who must have feature X
and people who'll leave if feature X is added to Python, nothing you can do
will solve that. So it's wrong to try to design your structures for that
problem. More often there is a third way, and consensus helps you to be sure
you found the third way.

~~~
icebraining
What if the core committers are generally decided for A but the language users
at large are for B? The way you make those decisions is a mechanism, even if
you don't want to name it.

~~~
tialaramex
In the scenario you describe there sounds like no consensus for A or B.

Maybe, after they explain how great A is the core committers can bring the
language users around on the idea of doing A. Maybe after spending more time
considering why B is beloved of language users the core committers come around
to B.

Perhaps most likely if the two conflict is that C is developed as both sides
look for the best of both, what an excellent outcome.

And if not, then do neither A nor B

We regret our bad ideas at leisure. No need to bake those bad ideas into a
programming language just because of a vague feeling that "we must do
something" (and as the saying goes "this is something, so we must do this").

------
TheMagicHorsey
I don't know if it's just me, but if you read the forums and bug reports
related to open source projects, it feels like programmers today are a really
entitled lot.

The tone that people take when filing bug reports for what is basically free
software is reprehensible. People are doing work for FREE to benefit you, and
you take a tone with them like you are a prince and they are your royal goblet
holders? Who taught these human beings their manners?

I totally understand the frustration when you write a large system in Python
and then the Python committee makes a breaking change that makes your life
very difficult. However, you didn't pay for Python! These sorts of changes
should be expected, and if you didn't expect it, you are the fool. And in any
case, you aren't paying these people a cent, so speak politely to them. You
are basically a charity case from their perspective.

~~~
dcosson
I think what you're saying is true in the case of someone just throwing up
some code they wrote online without any plan of supporting or developing it
further.

But once you call it an open-source project, and you have docs and a roadmap
and an issues page and stuff, you're making an implicit contract with people
who use it that it will do a reasonable job of solving the problem it claims
to solve. The user is choosing to use it over other alternatives and investing
time learning and integrating it, so it doesn't seem at all unreasonable to me
for them to be frustrated when they realize that due to some bug or limitation
it doesn't actually solve the problem for them that it claims to.

As an analogy, if you give someone free food and it makes them sick, are they
justified in getting mad at you? I think most people would say yes. IANAL but
I'd imagine that if you got food poisoning from Ben & Jerry's free cone day
due to negligent sanitation practices or something, you could probably sue the
company just like if you had paid for it.

Or, if a member of some sort of volunteer community board is doing a bad job,
people will complain about it. An open source maintainer is basically in the
same position.

Of course, that's no excuse for being rude to them, but you also shouldn't be
rude if you paid for something and it doesn't work. I'm not saying we
shouldn't do anything to reduce hostility towards maintainers when it happens.
But it's not true, in open source software or anywhere else, that just because
something is free there are automatically no expectations around it.

~~~
nickthemagicman
I think theres absolutely zero implicit contract that implies that open source
software maintainers owe ANYone ANYthing at ANYtime.

That's the reason it's open source because everyone can fix it, all an open
source maintainer owes you is a P.R. review.

Therefore if an open source project maintainer is giving you their time and
patience then you better be extra polite and grateful to them.

If Ben and Jerrys left a bunch of ice cream on the sidewalk and a bunch of
people ate it and got sick then there would be zero liability on Ben and
Jerrys.

~~~
skishore
> If Ben and Jerrys left a bunch of ice cream on the sidewalk and a bunch of
> people ate it and got sick then there would be zero liability on Ben and
> Jerrys.

Citation? That doesn't seem right, based on my anecdotal knowledge that
restaurants take care to throw leftovers into a garbage bin rather than leave
them out somewhere where someone could eat them and expose the business to
liability.

I looked up this claim myself. In 1996, President Clinton signed the Good
Samaritan Food Donation Act into law to limit liability for those who donate
food. [1] The majority of restaurants still discard leftover food due to
concerns over liability, though. [2] Clearly, liability was a real issue at
some point in the past. I don't know enough about the current law to know how
easy it is to take advantage of the new protections; I can understand why
people are still concerned.

In summary, liability issues vary by country and are not clear-cut. As an
analogy for this open-source situation, they don't clarify matters.

[1]
[https://digitalcommons.law.seattleu.edu/cgi/viewcontent.cgi?...](https://digitalcommons.law.seattleu.edu/cgi/viewcontent.cgi?article=1602&context=sjsj)

[2] [https://www.huffingtonpost.com/entry/restaurants-that-
dont-d...](https://www.huffingtonpost.com/entry/restaurants-that-dont-donate-
because-of-liability-are-just-making-excuses-experts-
say_us_577d6f92e4b0344d514dd20f)

~~~
inetknght
In your analogy you're citing a business. Then if you open source something
you wrote, are you claiming you are a business? No matter how un/business-like
the open source claim may be: has any money changed ownership between the
parties in the course of the person writing and maintaining software vs the
person using that software?

If no business transaction has been formalized then why should either party be
liable? Indeed, if a person is not permitted to simply say "this is the
software I am using" without also becoming liable for problems caused when
other people use or look at that software? I don't think it is right to allow
a person to be liable just for the speech of their software.

Fortunately, a lot of open source software is known to be open source because
of a license file. Many open source licenses declare no liability or warranty
of any kind. In that case, would not any liability claimed would be forfeit?
Otherwise they would have been using the software in breach of its _declared
intended purpose_ at the point of time being talked about.

~~~
brisance
IANAL but here are a few things to consider.

Every person has a duty of care to minimize the possibility of harm to others.
In some professions the standard is higher and may be codified into statute
and/or bylaws of their professional association e.g. medical and legal
professions. What this means is that, for example, in certain jurisdictions a
doctor is bound by his Hippocratic oath and has to render medical assistance
to a person who is in urgent need of it, as quickly as practicable. Ignoring
this exposes him to liability. So in the particular case of software, a
malware author could in theory be found liable by posting his proof of concept
in the public domain.

Secondly, in certain jurisdictions, there is an implied warranty of
merchantability and also of fitness for a particular purpose. In the US this
is under the Uniform Commercial Code.

~~~
mbreese
Most (all?) open source licenses have a clause disclaiming any implied
warranty or fitness for a purpose.

The example you cite of a doctor being required to provide emergency medical
care I don’t think is quite accurate. In fact, doctors are often not covered
by “Good Samaritan” laws and can be held liable if they do stop to help
someone and something goes wrong. A layperson would not have that type of
legal exposure. Medical treatment issues are complex and I can’t see how they
are related to open source software.

~~~
gonzo
It’s not accurate at all.

In the U.S., a doctor has no affirmative duty to provide medical assistance to
injured persons if they have not established a special relationship with the
individual.

~~~
brisance
That’s why in my post I qualified that with “depending on your jurisdiction”.

[https://en.m.wikipedia.org/wiki/Duty_to_rescue](https://en.m.wikipedia.org/wiki/Duty_to_rescue)

Read the last part about the elderly man who died in a bank and no one offered
assistance.

------
amorousf00p
God, I can empathize even if only at a much less prominent vantage. The
skills, will and effort involved are at a level far more than a 50+ can
reasonably sustain into the early 70s (if that is the prospect).

~~~
klez
Actually he's 62 (I know, I was surprised too!)

------
thinkingemote
What does BDFL stand for?

~~~
theandrewbailey
A list (but Guido is the original):
[https://en.wikipedia.org/wiki/Benevolent_dictator_for_life](https://en.wikipedia.org/wiki/Benevolent_dictator_for_life)

------
cjhanks
When you take the joy of programming from somebody, you cannot expect them to
stick around. At some point, we all have enough.

Excited to see what Guido wants to do next, enjoy it!

------
AdamN
Gentle reminder that Python 2 only has 17 months left...

------
tschellenbach
Thank you for your hard work Guido. Python is one of the nicest programming
languages to work with and will continue to thrive in the years to come.

------
err4nt
Wow, thank you so much Guido for the many years of leadership. I'm sure the
community will make you proud in the years to come!

------
BtdTom
Thank you for your creativity, support, and stewardship Guido. You left a
permanent mark on the programming community!

------
coldtea
He did a good work -- got it where it is now.

But he also had some specific stickups with some features -- like closures for
example.

------
wruza
All these discussions on minor but convenient changes remind me the (famous?)
quote: “When art critics get together they talk about content, style, trend
and meaning, but that when painters get together they talk about where can you
get the best turpentine.”

It’s sad to see how critics get in the way of an artist who just needs low-
level things to be fckng done in a safe-enough way.

------
MrXOR
GREAT dictator! Thanks for Python

------
tmaly
I think it will be interesting what structure of leadership will replace BDFL.

------
Animats
If only he'd done that before that weird unchecked advisory typing thing.

------
mattio
Enjoy your well deserved holiday! Send us a postcard ;-)

------
Buetol
Looks like the Python project is gonna migrate to be democratic, so the
decisions can’t be blamed on one guy. That’s interresting how this happens in
more and more projects !

------
jay754
Thank you Guido for everything you have done.

------
czardoz
A well deserved vacation! Thank you for the amazing stewardship over decades,
Guido.

------
jagger27
BDFL? PEP?

------
robotkdick
For anyone else wondering what BDFL means: _Benevolent Dictator For Life
(BDFL) is a title given to a small number of open-source software development
leaders, typically project founders who retain the final say in disputes or
arguments within the community. The phrase originated in 1995 with reference
to Guido van Rossum, creator of the Python programming language.[1][2] Shortly
after van Rossum joined the Corporation for National Research Initiatives, the
term appeared in a follow-up mail by Ken Manheimer to a meeting trying to
create a semi-formal group that would oversee Python development and
workshops; this initial use included the additional joke of naming van Rossum
the "First Interim BDFL".[1]_ Source: Wikipedia

It's interesting that GvR seems to have been the first official BDFL

~~~
exolymph
Especially since Linus is the BDFL most recognized as such.

~~~
diN0bot
Not the benevolent part

(regarding his style of communication)

~~~
namibj
Bu the communication is not what the benelovent dictator means. It refers to
something else.

------
Pica_soO
They will form a Anarcho-Syndicalist Commune. BDFL power can not be derived
from some aquatic farce.

------
bitmadness
Wow, this is the end of an era! Guido has had an extraordinary impact on the
direction of Python and software engineering more generally, and I thank him
for his contributions.

------
Tenoke
I got to say, HN has become _much_ looser with the titles since dang took
over. It could be for the better (or not), but I definitely see at least 5 top
posts a week with an editorialized title now, compared to a lot less before.

Edit: Everyone is saying it is fine. Again I'm not saying it is not, but if it
is, can you please update this part of the guidelines:

>Otherwise please use the original title, unless it is misleading or linkbait.
Don't editorialize.

~~~
apendleton
It's a direct quote from the email. Do you think it was taken out of context
in a way that communicates editorial intent? Seems pretty directly connected
to the contents of the message to me.

~~~
code_duck
It’s journalistic, but is not misleading. “[python-committers] Transfer of
power - Guido van Rossum” would be more verbatim, but I think the title is
okay.

~~~
Tenoke
_Sigh_ I'm not saying it's not okay in this case, I'm saying that I believe
this would've been disallowed before because we didn't want it to be up to
people's judgement whether it is okay or not.

~~~
code_duck
It’s not an article, and doesn’t have a title, so I don’t know what I’d
suggest, personally. We have no idea if the title came from the submitter or a
moderator, also.

------
nehemiahjacob
He should have done that before creating Python3

------
xchaotic
Damn Putin and his KGB/FSB - Crimea, brexit and now this - trying to undermine
my fave programming language...

------
leibnitz27
He's finally going to admit that the whole python thing was a terrible,
terrible joke, it got completely out of hand, and he can't believe people fell
for it.

------
VikingCoder
I've begged GitHub to institute forms of government for repos.

For X action to happen, Y percent of the pool of people in the Z list need to
approve it.

Membership of the Z list is granted when W percent of the T pool approve it.

Modifying the rules of government of this repo can only happen when L percent
of the R pool approve it.

And on and on...

I could imagine a city or state government actually having its laws encoded in
Github, and Github itself enforces the governmental system of checks and
balances. Congress. Senate. President. Veto. Overriding a Veto. Laws of
succession. Elections. On and on.

~~~
_wmd
Technology cannot solve social problems

~~~
jpfed
Wasn't it nice that you could reply to this comment over the web rather than
physically going to the commenter and telling them what you thought? Boy, this
technology sure gave a helpful assist to the social problem of communication.

~~~
_wmd
OP wants code to legislate trust problems within a small, closed group,
however no amount of code can ever solve trust problems within a small, closed
group.

No amount of code thrown at people mismanaging their relationship with other
people will ever help people more effectively manage their relationship with
those people -- it just creates artificial obstacles that further exacerbate
or obscure the problem.

There is simply no combination or refinement of the logic OP proposed that
would ever be perfectly sufficient to avert the need for human judgement in
their scenario.

What if 51% of the project simultaneously reveal themselves to be alt-right
fanatics who want to take the work in a new, fundamentally evil direction,
ideologically aberrant to OP? Oh that's easy - OP can just step in with his
admin privileges and disable their access. And that just underscores the point
-- the original voting logic was a facade, and the original trust problem
remained. The presence of that logic failed to solve any problem, the reality
was always a true power structure that differed from the imaginary codified
structure.

Perhaps one alternative would be for OP to give up admin rights entirely - but
only a fool would believe a bunch of codified rules spread across a couple of
software functions could ever perfectly mediate the complexities of a
community of people in every possible scenario.

~~~
VikingCoder
Slow down, I don't think I've done a single thing about "trust."

That's still a social problem.

What I want is that the mechanical process of doing code reviews, accepting
pull requests, and orchestrating the Access Control Lists, and the membership
of them, can be implemented by the code repo.

Rather than giving unfettered power to a small list of owners, who could
literally do anything to the repo. And if they all get hit by the same bus,
then we're SOL.

Heck, I want a Deadman Switch, too. If Github doesn't hear from me in 90 days,
even after emailing me to get my attention, then ownership of this repo should
be assigned to this other person. If that fails, on to this other person, etc.

"only a fool would believe a bunch of codified rules spread across a couple of
software functions could ever perfectly mediate the complexities of a
community of people in every possible scenario."

Or someone who has experienced such a system at a company, and wishes the rest
of the world had similar functions.

Note that I'm happy to allow for escape hatches... Such as we could always
Fork the repo.

"What if 51%"

Then I fork the repo.

What do you do if the 1 single owner of a repo turns out to be a fanatic?

You and twenty other people all fork the repo, and then debate ensues about
who is the One True Repo.

I'm suggesting that there's a smarter way to handle the problem of a small
number of people having absolute power over our repos.

And if you're smart, you leave in a provision for completely changing the
governance, in case you screw it up. Or you just fork. Like we do today.

------
erikb
I believe a big part of Python's success is owed to Guido. However I don't
think this is a good move. It's not very likely, but not impossible that this
will even kill Python.

Doesn't he have any people he trusts in the inner circle of Python
development? Would've been much better to have power slowly and uncommented
slip into their hands. A process that could have been started years ago.

Feels a little like this:
[https://imgur.com/gallery/IYYmtqL](https://imgur.com/gallery/IYYmtqL)

------
antpls
If Guido wasn't himself while writing the PEP572, I ask for a new vote about
the PEP572. I vote against it, the PEP572 should not be implemented.

To me, it seems a restricted variant on the specific cases "if" and "while"
would be good enough, without generalizing to more cases.

The exemples of assignment with "all()" and "any()" make me sad. Python had
only one way of doing things, now it has two.

Reading Python code will be more complicated now than it was 10 years ago for
newcomers

Edit : I'm sick of all the downvotes on HN. Everytime we post an opinion
against the consensus, it ruins the karma, even if the comment is honest. And
of course, I can't downvote people, since people keep downvoting me, I never
reach the threshold to vote against any comment. The system is unfair to
newcomers.

~~~
daxorid
> Everytime we post an opinion against the consensus

Downvoting was, long ago, supposed to be used to indicate trolling,
incivility, not substantive, etc. Sometime recently, dang and sctb have ruled
that downvoting for disagreement is now perfectly acceptable.

In any event, I agree it's become a terrible method of hivemind enforcement.
Have an upvote.

~~~
detaro
> _Sometime recently, dang and sctb have ruled that downvoting for
> disagreement is now perfectly acceptable._

You are wrong about that:
[https://news.ycombinator.com/item?id=117171](https://news.ycombinator.com/item?id=117171)

~~~
dang
More here:
[https://news.ycombinator.com/item?id=16131314](https://news.ycombinator.com/item?id=16131314)

