(needs a sponsor)

latest version at
https://github.com/gerritholl/peps/blob/animal-friendly/pep-9999.rst

PEP: 9999
Title: Retire animal-unfriendly language
Author: Gerrit Holl <gerrit.h...@gmail.com>
Discussions-To: python-ideas@python.org
Status: Draft
Type: Informational
Content-Type: text/x-rst
Created: 01-Apr-2020
Post-History: 01-Apr-2020
Sponsor:


Abstract
========

Python has long used metasyntactic variables that are based on the
consumption of meat and dairy products, such as "spam", "ham", and
"eggs".
This language is not considerate to pigs or chicken and violates the
spirit of the Code of Conduct.  This PEP proposes to retire the use
of those names in official Python documentation and source code and to
recommend users of Python to do the same.


Motivation and Rationale
========================

Estimates for the number of animals slaughtered for meat every year
vary, but `worldindata`_ estimates around 80 billion individuals.
Farmed animals are often kept in small cages with little to no access
to daylight, suffer stress during life and slaughter, or are otherwise
systematically mistreated.

The `Python Code of Conduct`_ describes that community members are
open, considerate, and respectful.  The Python standard library and
documentation contain numerous references to meat or dairy based food
products that are not respectful to our fellow inhabitants of planet
Earth.  Examples include "spam", "bacon", and "eggs".

To align the language use in the standard library and documentation
with
the Code of Conduct, use of such language should be retired.


Current practice
================

There is a widespread tradition in the Python standard library, the
documentation, and the wider community, to include references to Monty
Pythons Flying Circus.  The use of "spam", "bacon", "sausage", and
"eggs" can be traced back to the `"Spam" sketch`_ originally broadcast
by the British Broadcasting Corporation (BBC) on 8 September 1972.
In this sketch, a couple are trying to order food in a diner where all
items contain spam.  The woman does not like spam and wants to order
food without spam.  A group of horned vikings then sing about the
wonderful spam.

To get an overview of the usage in the current standard library, the
command ``cat $(find . -name '*.py') | grep -oi term | wc -l`` was
used.
This showed 2615 occurences for spam, 593 for ham (this include some
false positives, among other reasons due to references to people whose
name innociously contains the substring ham), 517 for eggs, 57 for
bacon,
and 10 for sausage.  Searching ``*.rst`` in the documentation revealed
391 occurrences for spam, 82 for ham, 96 for eggs, 28 for bacon, and
10 for sausage.  The source code for cpython revealed just 2 usages
for
spam and 1 for eggs.

Proposed alternatives
=====================

Keeping with the good practice of referencing sketches from Monty
Python's
Flying Circus, this PEP proposes to adopt the fruits mentioned in the
`"Self-Defence Against Fresh Fruit" sketch`_:

* raspberry (not currently in use)
* banana  (68 times in standard library)
* apricot (not currently in use)
* pineapple (8 times in standard library)
* peach (once in standard library)
* redcurrant (not currently in use)
* damson (not currently in use)
* prune (23 times in standard library)

Other possible alternatives keeping with food items:

* salad (occurs once in standard library)
* aubergine (referred to in the spam sketch)
* shallot (the same)
* tofu (vegan protein alternative)


Specification
=============

For the reasons mentioned in the rationale, all references to meat or
dairy
products shall be removed from the Python standard library, the
documentation,
and the cpython source code.  The wider Python community is
recommended to
follow this practice.  In core Python:

* Programmers SHALL NOT use the metasyntactic variables "spam", "ham",
"bacon",
  or "sausage", neither as variable names, nor in example strings, nor
in
  documentation.
* Programmers SHALL NOT use the metasyntactic variable "eggs" in
context with
  food items, but may still use it in context of other body parts.
Prohibited:
  ``["salad", "eggs"]``.  Allowed: ``["ovaries", "pouch", "eggs"]``.
* Programmers SHALL NOT use any other metasyntactic variable that is
unfriendly
  to animals.

The wider Python community is encouraged to adopt these practices as
well, but
the continued use of animal-unfriendly metasyntactic variables will
not be
considered a violation of the code of conduct.


Rejected ideas
==============

The authors carefully considered the widespread use of the word "bug"
in the meaning of a source code error.  Insects including bugs play
a crucial role in ecosystems around the world, and it is not fair to
blame them for an error that can only be the programmer's.  However,
the use of the word "bug" for a source code error is too much
ingrained
into daily use, it far predates the Python community, is not limited
to
the Python community, and the word "bug" is less unfriendly than
"spam",
"ham", or "bacon".  Therefore, the word "bug" may still be used.


Reference Implementation
========================

The author promises to provide a reference implementation for Python
3.10,
should this PEP be accepted.


References
==========

.. _worldindata: https://ourworldindata.org/meat-production
.. _Python code of conduct: https://www.python.org/psf/conduct/
.. _"Spam" sketch: http://www.montypython.net/scripts/spam.php
.. _"Self-Defence Against Fresh Fruit" sketch:
http://www.montypython.net/scripts/fruit.php


Copyright
=========

This document is placed in the public domain or under the
CC0-1.0-Universal license, whichever is more permissive.



..
   Local Variables:
   mode: indented-text
   indent-tabs-mode: nil
   sentence-end-double-space: t
   fill-column: 70
   coding: utf-8
   End:
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/WXDGW4PZLLOXLZEQ62V3NINENKVIPLXB/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to