The Politics of Python Programming

Programming language and organised control

When you used a digital product or you might not have thought about the programming language that was running. In the machine you interact with and through its hardware runs a software – a set of instructions, data or programs used to operate computers and execute specific tasks. Does the structure of this software matter? If you believe so and want to understand more you can approach each language with a critical eye. It is worth considering critical algorithm studies — broadly speaking, the application of humanistic and social scientific approaches to algorithms. Python programming is said to be open-source, yet what does this mean in practice and what politics come into play within one of the largest and most quickly growing programming languages in the world. We will get to this point later, but first how popular is Python as of September 2019.

What is programming?
Programming is the process of creating a set of instructions that tell a computer how to perform a task.

One of the most popular programming languages in the world

Governing Python

In fact there were seven proposals for governance with two policy documents issued by the Python community summarising this. PEP 8000 — Python Language Governance Proposal was one and PEP 8001 — Python Governance Voting Process was the other. As such both governance in a wider perspective and democracy within the structure of an international programming language was to be decided. In December 2018 a voting process for those eligible to vote was held.

The proposals ranged from various forms of community governance to appointing a single individual as the Technical Leader — in effect a new Benevolent Dictator but now with the acronym GUIDO standing for “Gracious Umpire Influencing Decisions Officer” and serving for three Python releases, approximately 4.5 years. In the end PEP 8016 — The Steering Council Model won proposing that a council of five individuals should be named.

A Question of Power

The steering committee was elected and the members are as follows:

What type of powers do they wield? This is described in another PEP 13 — Python Language Governance which was developed from PEP 8016 which in turn was based on Django governance document written by Aymeric Augustin. In the section of PEP 13 simply called Powers it is described that: “the council has broad authority to make decisions about the project. For example, they can:

  • Accept or reject PEPs
  • Enforce or update the project’s code of conduct
  • Work with the PSF to manage any project assets
  • Delegate parts of their authority to other subcommittees or processes”

They cannot however modify PEP 13 or affect the membership of the core team, except via mechanism specified in the PEP 13: (1) Council members may resign their position at any time; (2) whenever there is a vacancy during the regular council term, the council may vote to appoint a replacement to serve out the rest of the term; (3) If a council member drops out of touch and cannot be contacted for a month or longer, then the rest of the council may vote to replace them; (4) conflict of interest, if more than two council members work for the same employer, then one or more council members must resign; (5) in exceptional circumstances a majority can remove a council member 3:2 or 4:1; (6) a vote of no confidence for either a single member or the entire council.

“The council should look for ways to use these powers as little as possible. Instead of voting, it’s better to seek consensus. Instead of ruling on individual PEPs, it’s better to define a standard process for PEP decision making (for example, by accepting one of the other 801x series of PEPs). It’s better to establish a Code of Conduct committee than to rule on individual cases. And so on.”

To use its powers, the council votes. Every member of the council must vote or explicitly abstain. Members with conflicts of interest on a particular vote must abstain. Passing requires a strict majority of non-abstaining council members. Whenever possible, the council’s deliberations and votes shall be held in public. The council is elected after each feature release. There are no term limits.

Since Python as a programming language is used in a wide variety of applications and its structure contributes to shaping the decision-making in a wide variety of issues let us hope that this new council governs well. Seeing the seriousness and practice of governance in Python unfold may be surprising to some, me included. It certainly lends itself to the question of politics and governance in programming languages — perhaps a question for political scientists and computer scientists to work on in tandem going forward?

This is day 107 of #500daysofAI. My current focus for day 101–200 is mostly on Python programming. If you enjoy this article please give me a response as I do want to improve my writing or discover new research, companies and projects.

ODSCJournal

Collecting all of the best open data science articles…

Sign up for Open Data Science Newsletter

By ODSCJournal

Every week, we will share the latest data science tutorials, artificial intelligence news, and how to get started with machine learning and more. Take a look.

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Alex Moltzau 莫战

Written by

AI Policy and Ethics at www.nora.ai. Student at University of Copenhagen MSc in Social Data Science. All views are my own. twitter.com/AlexMoltzau

ODSCJournal

Collecting all of the best open data science articles, tutorials, advice, and code to share with the greater open data science community!

Alex Moltzau 莫战

Written by

AI Policy and Ethics at www.nora.ai. Student at University of Copenhagen MSc in Social Data Science. All views are my own. twitter.com/AlexMoltzau

ODSCJournal

Collecting all of the best open data science articles, tutorials, advice, and code to share with the greater open data science community!

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store