Hacker News new | ask | show | jobs
by Alir3z4 2895 days ago
Please no democracy, not a voting madness or anything like groups decision making.

Just another BDFL, that's it.

7 comments

> Just another BDFL, that's it.

I think a lesson to take from this is that the concept of a "BDFL" doesn't really stand up. Putting an individual in charge dramatically increases the chances that they will suffer some kind of burn out compared to a situation where there are more people to share the burden with. That means the "For Life" part is more like "until they decide it's not worth the grief".

It's also clear that the "Dictator" part isn't really true; the stated reason for Guido leaving the project was the difficulty he had in getting the wider community to agree to a change he was in favour of.

The idea that having a single individual in charge produces a consistency of design seems false over the long term. Each time you burn through one leader you have to pick a new one who might have a relatively different aesthetic sense or set of priorities. And individuals change. Someone who was indifferent to functional programming, for example, in 1995 could be a huge advocate of it 20 years later, making quite different design decisions as a result.

Instead I would strongly encourage the Python community to look at what the Rust community have been doing. Leadership there is group-based, and the core team sets out an explicit vision for the project each year. This allows feedback from the community on direction and enables changes to be assessed against the explicit shared vision (vs assuming that vision exists in someone's head in the BDFL model). Ther exists a process for making changes that ensures that all (unique) feedback is considered before making a change, so that when decisions are made they're made based on shared facts. There is also emphasis on growing contributers into leadership positions, which togther with the team-based approach provides continuity when people move on from the project.

I'm not claiming it's a perfect system, but it seems to be working relatively well in a language that is going through a much more active phase (in terms of adding features) than Python.

> That means the "For Life" part is more like "until they decide it's not worth the grief".

That is what “for life” means lots of the time outside of BDFL, too.

Federal judges retire, too. Monarchs and even regular, non-benevolent dictators abdicate or otherwise step down.

To any ecosystem that's considering adopting our governance model: we love it, but it does have some drawbacks. We've changed the implementation a few times over the years, and are considering more change. See here for the latest: http://smallcultfollowing.com/babysteps/blog/2018/06/20/prop...

Happy to talk more with anyone who's interested in this topic. :)

I like the idea of a triumvirate, three people with a shared vision but perhaps with unique skills [0]. Hopefully all sharing a benevolent tendency to avoid things going pear-shaped [1].

[0] https://lwn.net/Articles/759798/

[1] https://en.wikipedia.org/wiki/First_Triumvirate

You know the triumvirates resulted in the fall of the republic, right? Power doesn't like to be shared...
You could say the same thing about dictators. The problem is not the power structure, but whether they are meant to be benevolent or not.

You could also say that a triumvirate is better than a dictatorship since there would be a small system of checks in place (not saying that Guido was being pushy with his position of BDFL, but it would be nice to see other ideas having as much ground as one person's ideas).

Sulla and Marius had pretty well smashed the republic a generation before. Not that Rome was ever really the idealized representation of a Republic that everyone at all points in time considered it had become debauched from.
> You know the triumvirates resulted in the fall of the republic, right?

I think its more defensible to stay they were symptoms of the ongoing collapse than causes.

Honestly I think the idea of a council of four is better. If they can't come to an agreement, then Python isn't changed.
Raymond Hettinger for BDFL! :)
I seconded Raymond Hettinger. He is a very experienced developer and is much respected one. If he does not want the role, perhaps Victor Stinner can do the job.
I don't know how Ruby does it, but however Ruby does it, do it that way. Consistently good language / ecosystems from the Ruby team.
Doesn't Ruby essentially have a BDFL, i.e. Matz?
I see you share the opinions of Plato's Republic. But philosopher-kings are always in such short supply...
Again and again AMEN.

I would accept a PCOE with lifetime appointments and confirmation by core contributors but turning it to a full democracy seems likely to change the things I love most about the language

here's my plan

1. elect anyone as BDFL

2. new BDFL announces they will pass a few PEP Guido was adamant against, because, well, now they are the BDFL

3. Guido realizes the mistake and we have the good old BDFL a while longer