Толерастия везде

Политкорректность учитывается даже в языках программирования. На прошлой неделе Python-разработчик Виктор Стиннер (Victor Stinner) из Red Hat прислал четыре пул-реквеста на переименование потенциально оскорбительных терминов master/slave (хозяин/раб) в документации и коде Python. Автор предложил заменить их социально нейтральными словами, не оскорбляющими людей, чьи предки были настоящими рабами. В качестве возможной альтернативы есть термины parent/worker.

Предлагаемое изменение — не какая-то прихоть одного разработчика, а общая тенденция для разных языков программирования и технологий. Стиннер привёл примеры аналогичных изменений в RedisDrupalCouchDB и Django. Так, Django и CouchDB заменили термины master/slave на leader/follower.

При этом Стиннер высказал мнение, что «рабовладельческую» терминологию всё-таки можно оставить для некоторых терминов, таких как ветка master в Git, веб-мастер и postmaster.

Развернулась жаркая дискуссия.

Поиск по кодовой базе python/cpython находит многочисленные включения «оскоробительных» терминов master и slave рядом друг с другом, в том числе в библиотеках pty и openpty.

Например, вот код Lib/pty.py:
 

<code>STDIN_FILENO = 0STDOUT_FILENO = 1STDERR_FILENO = 2CHILD = 0def openpty():    """openpty() -> (master_fd, slave_fd)    Open a pty master/slave pair, using os.openpty() if possible."""    try:        return os.openpty()</code>


Виктор Стиннер говорит, что «поступали жалобы» на такую терминологию, но они высказывались в частном порядке, а не публично, чтобы избежать ругани.

В обсуждении проблемы коллеги обращают внимание, что документация Python не дублирует документацию Linux — а именно оттуда идёт использование терминов master/slave для многих функций. Таким образом, если согласиться на переименование только для Python, то это приведёт к отклонению от общепринятого стандарта Linux. Грубо говоря, одни и те же функции документация Python и Linux будет описывать разными словами. Коллеги предлагают отказаться от изменений «вторичной» документации Python до тех пор, пока соответствующие изменения не будут внесены в документацию Linux.

Внимание разработчиков привлекают в первую очередь такие участки кода и терминологии, где слова «хозяин» и «раб» встречаются рядом друг с другом. Если же master упоминается изолированно, то эти фрагменты можно оставить в неприкосновенности. Например, в модуле doctest есть обозначение doctest.master:
 

<code># For backward compatibility, a global instance of a DocTestRunner# class, updated by testmod.master = None</code>


По мнению Виктора Стиннера, это уже выглядит не слишком оскорбительно.

Автор нашёл множество случаев, где упоминается «унизительная лексика». Например, в nntplib.NNTP() есть метод slave(), который отправляет команду slave на сервер. Данное исправление потребует изменений протокола NNTP, а именно раздела 3.12 (команда SLAVE), пишет Стиннер.

Другой пример — атрибут mbuf.master обект PyMemoryViewObject в программных интерфейсах C API:
 

<code>typedef struct {    PyObject_HEAD    int flags;          /* state flags */    Py_ssize_t exports; /* number of direct memoryview exports */    Py_buffer master; /* snapshot buffer obtained from the original exporter */} _PyManagedBufferObject;/* memoryview state flags */#define _Py_MEMORYVIEW_RELEASED    0x001  /* access to master buffer blocked */#define _Py_MEMORYVIEW_C           0x002  /* C-contiguous layout */#define _Py_MEMORYVIEW_FORTRAN     0x004  /* Fortran contiguous layout */#define _Py_MEMORYVIEW_SCALAR      0x008  /* scalar: ndim = 0 */#define _Py_MEMORYVIEW_PIL         0x010  /* PIL-style layout */typedef struct {    PyObject_VAR_HEAD    _PyManagedBufferObject *mbuf; /* managed buffer */    Py_hash_t hash;               /* hash value for read-only views */    int flags;                    /* state flags */    Py_ssize_t exports;           /* number of buffer re-exports */    Py_buffer view;               /* private copy of the exporter's view */    PyObject *weakreflist;    Py_ssize_t ob_array[1];       /* shape, strides, suboffsets */} PyMemoryViewObject;</code>


В общем, master и slave встречаются буквально повсюду. Виктор Стиннер предложил ряд патчей, которые местами исправляют ситуацию. Таким образом, в версии Python 3.8 термины master/slave будут встречаться реже.

Теоретически, в отдельных случаях проблема можно решить, не отказываясь от устоявшейся терминологии. Например, разработчики Redis предложили оригинальный выход из ситуации: с версии 1.0.0 там поддерживается команда SLAVEOF NO ONE, которая превращает сервер-slave в сервер-master. Хуже, если соответствующих изменений в синтаксисе потребуют власти. Предпосылки к этому уже есть. Например, в 2003 году отдел закупок департамента внутренних сервисов округа Лос-Анджелес разослал производителям электроники и бытовой техники уведомление с просьбой избегать терминов master/slave в описании своей продукции.

В 2004 году группа мониторинга Global Language Monitor назвала master/slave самым политически некорректным термином года. В технологической индустрии эти слова употребляются очень давно и стали частью многочисленных стандартов, в том числе RFC 977 от 1986 года.

По поводу пулл-реквестов Виктора Стиннера начались споры, которые полностью отражают аргументы убеждённых противников и сторонников политкорректности — такие споры ведутся на разных форумах. Конец дискуссии положил сам Гвидо ван Россум, который формально уже отошёл от дел, но присматривает за своим детищем Python. Он смерджил три из четырёх предложенных пул-реквеста, а четвёртый отверг, потому что он отражает оригинальную терминологию pty из UNIX.

Заметим, что «оскорбительная» терминология по историческим причинам стала частью современного языка и вряд ли от неё можно полностью избавиться. Например, Дэвид Гребер в книге «Долг: первые 5000 лет истории» приводит пример понятий “dominium” (доминиум) и “familia” (семья):
 

Что касается понятия “dominium”, то оно происходит от слова “dominus”, которое означает «хозяин», или «рабовладелец», но восходит к слову “domus”, т. е. «дом», или «хозяйство». С этим связан английский термин “domestic” («домашний»), который даже сегодня может использоваться в значении «относящийся к частной жизни» или же обозначать слугу, убирающего дом. “Domus” перекликается со словом “familia”, т. е. «семья», но “familia” происходит от слова “famulus”, т. е. «раб». Изначально под семьёй понимались все люди, находившиеся под домашней властью “pater familias”, которая была, по крайней мере в раннем римском праве, абсолютной.

У мужчины не было полной власти над женой, поскольку она до некоторой степени по-прежнему оставалась под защитой своего отца, но с детьми, рабами и другими зависимыми людьми он мог делать все, что ему вздумается, — во всяком случае, в раннем римском праве он был волен их пороть, пытать или продавать. Отец мог даже казнить своих детей, если обнаруживал, что они совершили тяжкое преступление. А если дело касалось рабов, то ему не требовалось и этого предлога.

Создавая понятие “dominium”, которое легло в основу современного принципа частной собственности, римские юристы обратились к принципу домашней власти, полной власти над людьми, определили некоторых из этих людей (рабов) как вещи, а затем распространили логику, которая изначально применялась по отношению к рабам, на гусей, колесницы, амбары, ювелирные шкатулки и т. д., то есть на любую вещь, имеющую отношение к праву.


То есть даже слова «семья», «фамилия» или понятие частной собственности можно считать неполиткорректными по такой логике: все они имеют отношение к рабству. Эти понятия вошли в современные языки со многими словами, о происхождении которых люди обычно не задумываются. Есть повод оскорбиться и у славян.
 

«Весьма неполиткорректно присваивать типы объектам до момента их создания!

Мы не должны навязывать объектам, кем им быть, а кем — нет.

Объект может сам решить, какого он типа, прямо в рантайме. Более того, он вправе изменить свой тип, если почувствует к этому внутреннюю расположенность.

Сегрегация объектов по их типу должна быть запрещена на законодательном уровне, покуда не станет интернированной социальной нормой каждого кодера.

Всем объектам на уровне операционной системы должны быть гарантированы равные возможности и по первому требованию предоставлены равные права.

Пока системы далеки от совершенства, стоит предусмотреть в них обязательные квоты для объектов каждого типа и следить за их неукоснительным соблюдением».
  • avatar
  • .
  • +30

9 комментариев

avatar
– Это лучше на примере объяснять, – ответил Михайлов. – Вот, например, слово «ниггер». Если вы белый, употреблять его нельзя ни при каких обстоятельствах – последствия будут на всю жизнь. Белого американца достаточно один раз напугать в детстве, и он уже никогда так не скажет. В крайнем случае, чтобы обозначить табу, будет говорить «N-word».
– Ну и?
– Но очень трудно – практически невозможно – заставить мозг полностью исключить термин из внутреннего диалога. Мозг будет, во-первых, жевать это слово, а во-вторых, моделировать будущее, где нарушается запрет на его употребление, потому что такое моделирование и есть одна из главных функций неокортекса. Будущее по любым прикидкам получится неприятное. Поэтому мозг станет сам себя пороть и пугать при любой активации соответствующего нейрокоррелята. Причем происходить это может ниже порога осознанности. Человеку страшно, ощущается какая-то угроза – а почему, непонятно. То же самое будет происходить при встрече с любым негром, даже самым мирным. Поэтому белые полицейские в них и палят все время. Расизм тут ни при чем. Полицейские на самом деле стреляют не в негров, а в свой культурный гироскоп. Просто источник экзистенциальной угрозы проецируется наружу
avatar
С прошлого века диски в биосе были master/slave.
Насчет славян: где-то была большая статья, которая рассматривала именно эту тему, не все так однозначно.
avatar
И motherboard — сексисткий угнетающе-дискриминационный термин! Срочно переименовать материнскую плату в вагинородительскую!
avatar
вагина кстати тоже не политкоректно. рили стори. переднее отверстие…
avatar
Мляяя… Материнку оставьте. Ну хотя бы на мой век.
avatar
pussyboard
avatar
Этот термин оскорбляет чувства женщин с небольшим размером молочных желез
avatar
А так?

avatar
словно на алиэкспрессе материнку подыскиваешь :D
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.