Python after Guido BDFL, the future of the governance of python
Few months ago Guido Van Rossum the author/creator of the python programming language decide to go away from the project due to personal reasons and conflicts inside the community.
Now the community and especially the core development team facing an issue, how to replace Guido and how to make decisions?
Indeed, since the Guido announcement, the futur of python and especially the community is disappointed by the fact that they need to continue to involve python but who can choose the changes to apply and so the future of python features and orientations.
Due to these problems the community need to decide the future of the python organisation and the future of the python governance.
In this article, in a first time, we want to analyze who use python, what’s the problem for global business and for the end users reffered to the governance issue.
Second, we try to allow you to decrypt the main solutions proposed to the governance issues and the main steps to choose a definitive position.
Little move backward
Guido Van Rossum create the Python programing language in december of 1989.
“I would like to remove myself entirely from the decision process. I’ll still be there for a while as an ordinary core dev, and I’ll still be available to mentor people — possibly more available. But I’m basically giving myself a permanent vacation from being BDFL, and you all will be on your own.”
Since this announce the community need to find a new governance model to continue to take decision and to choose the future of the programming language.
Now, Core developers need to be mobilized to find a solution to this issue.
Who use python?
Python is used by a wide range of end users, from the data scientist to the manufacturer and the industry.
Python is used to create Artificial Intelligence (AI), to automatize process, to create web application, to create video games, to create cloud technologies, etc.
We can find python inside your Operating System (OS), the servers where you connect you, your phones, your cars, our satellites, our factories, so, python is everywhere!
In the tiobe programing language index ranking, python is in 4th place of the most used languages all over the world.
What’s the problem?
Python is used all over the world, by nearly all the companies and all the peoples, directly or indirectly (like system dependencies, tools, etc.), so, a complexe situation on the python board can have wide impacts on the economy and on the global business. We not are facing a catastrophic situation but we need to take care about this.
Fortunately the solution to solve this problem is straightforward, and like a lot of peoples you have a role to play!
Companies who uses open sources software need to invest a little bit inside these technologies, which very often was developed by community contributors on their spare times. Often these communities are tired and the workload is complicated to support.
Some companies like Red Hat, Microsoft, or Instagram, to name a few, are already funding the Python Software Foundation (PSF), by allowing their collaborators to work on python on their working time, or by giving money, so if you want to invest your company inside python, you can start by allowing your workers to work on python some hours by weeks to make code reviews, fixing bug, translate python documentation, (etc.), also you can give funds to allow to help the PSF to hire full time developers by example.
Now we want to take the tour of the future of the python governance.
The future of the governance of python
Since this announce, the community need to find a solution to this issue.
In august 2018, the python community, especially Barry Warsaw create the PEP-8000 to centralize core developers propositions about governance.
This PEP provides an overview of the selection process for a new model of Python language governance in the wake of Guido’s retirement. Once the governance model is selected, it will be codified in PEP 13.
Currently this PEP centralize 7propositions (PEPs):
- PEP 8010 — The Technical Leader Governance Model
- PEP 8011 — Python Governance Model Lead by Trio of Pythonistas
- PEP 8012 — The Community Governance Model
- PEP 8013 — The External Governance Model
- PEP 8014 — The Commons Governance Model
- PEP 8015 — Organization of the Python community
- PEP 8016 — The Steering Council Model
Victor Stinner, the author of the PEP 8015, have also write a comparison of the 7 governance PEPs, I really advice you to take a look for an overview of these propositions and to have an overview of futur of Python in general.
Most PEPs define a “top of the hierarchy” (Steering Committee, Council, Trio, GUIDO, etc.), but PEP 8012 and 8014 don’t.
We can observe the following paradigms of governance:
- PEP 8010: continue status quo (ish)
- PEP 8011: like status quo but with 3 co-leaders
- PEP 8012 :no central authority
- PEP 8013 : non-core oversight
- PEP 8014 : core oversight
- PEP 8015: push most decision-making to teams
- PEP 8016: bootstrap iterating on governance
Some PEP (8011, 8012, 8015) define “working groups” (or “experts” or “Python Teams”).
They are explicitly involved in the decision process, and may be seen as the second level of the hierarchy.
We can compare the working groups with the Linux organization and the Linus lieutenants, who works on dedicated topics. Each lieutenant manage a topic and merge patches dedicated to this topic. This sound like a pre-filter, after this a general core developer can decide to merge patch or a series of patches inside the top level repository.
These working groups can introduce the notion of core commiter with limited rights (rights limited on a specific topic), example, you can become core developer only for the performance team (dedicated to the performance topics), or become core developer only for the security team.
I personally really appreciate this approach, due to the fact that python need to find more core developers to treat subjects and to spread the workload over core members, so if we increase the number of core members we also increase the well being of them. It’s my point of view.
Voting process and decisions
All over these PEPs the voting process and decision process is strongly around the core developers in all governance PEPs. Candidates must be core developers, only core developers can vote, etc.
Only the PEP 8014 define that every Python user (everybody) can votes. Votes can be for a PEP or for choices and orientations, by example, to example a few.
Only PEP 8013 excludes core developers from its council.
When a technology is owned by a community the risk that companies try to own her by lobbying exist.
To avoid companies to own the language, to impose theirs decisions, some PEPs, like PEP 8015 and PEP 8016, restrict companies to have strictly less than 50% members of the council:
- PEP 8015: 1 member
- PEP 8016: 2 members
Other PEPs have no restriction.
The idea is to reduce the risk that a group of people or companies “takes over” the Python project through just a couple individuals. The project must remain autonomous and open to everybody.
I totally agree this restriction, I think it’s essential to keep Python independent and owned by the community.
Some PEPs (PEP 8011, PEP 8014, PEP 8015) take care about the diversity and mention it, especially the PEP 8011 who try to make an effort about this topics by saying:
Take every effort into including members from under-represented group into consideration.
Personally I’m convinced that diversity is the key of new ways of thinking and doing, so I think that diversity need to be an important effort on the python governance next generation.
Now, the vote for the choose of the new governance will happen in 2 weeks-long window from the Friday 16th of November 2018 to the Friday 30th of November 2018 (anywhere on earth). All the PEPs will be frozen to avoid mistakes and changes during this period.
This article is motivated by a discussion that I’ve had the last week with an end user of python who is afraid since the Guido announcement, so, I think it’s important to share news with the community and beyond.
I really advice you to read the Victor Stinner post to dig more deeply this topic and to have more precise overview. Also, a major parts of my write are extract and/or rewrite from its post, and my main goal is to spread the words to more persons than the core community, to reach python end users, and to help you to keep confidence in python.
The last words
I hope this article help you to more understand the situation and help you to decrypt the challenges that facing the Python community.
Everybody have a role to play to solve this issue and the board already engage a fight to be reborn from his ashes.
You need python, python need you!
About this article
I want to precise that I’m not a PSF core member, I’m just a passionate who enjoy to use Python and who want to evangelize him, so this article is independent from the PSF and the Python board, I decide to write this article, all the opinions are my own.
I want to say thank you to Victor to take the time to discuss with me and to share informations about this topic.
I want to say a special thanks to Guido for all his works and his efforts during all the times.
Also, I want to say thank you to all the community and contributors for all theirs works and all the efforts.