Python для соблюдения политкорректности избавляется от терминов "master" и "slave"
danilov 13 Сентября 2018 в 10:37:14
Гвидо ван Россум (Guido van Rossum) поставил точку в споре, возникшем среди разработчиков языка Python из-за изменений, предложенных Виктором Штиннером (Victor Stinner), работающим в Red Hat и входящим с число ключевых разработчиков Python. Виктор предложил вычистить код Python от упоминания слов "master" и "slave", так как их использование является неполиткорректным и ассоциируется с рабством и неравноправием. Несколько лет назад некоторые открытые проекты уже затронула череда подобных переименований, например, в Drupal термины "master" и "slave" были заменены на "primary" и "replica", а в Django и CouchDB на "leader" и "follower".
Предложение вызвало бурную дискуссию, которая привела к расколу сообщества на сторонников и противников переименования. Противники мотивировали свою позицию тем, что не следует смешивать политику и программирование, "master" и "slave" лишь термины, значение которых уже устоялось в компьютерной технике и не имеет ничего общего с одобрением рабства. Кроме того, замена устоявшихся терминов неизбежно вызовет путаницу среди разработчиков и может привести к нарушению обратной совместимости. Также упоминается, что одно дело когда какие-то выражения являются оскорбительными или непонятными, но в случае с "master" и "slave" имеет место лишь неопределенно сформированные представления о политической корректности, мешающие использованию простого английского языка.
Несмотря на намерение уйти с поста великодушного пожизненного диктатора, в спор пришлось вмешаться Гвидо ван Россуму и принять конечное решение. Из пяти коммитов, предложенных при обсуждении переименования "master" и "slave" на parent/main/server и child/worker, в кодовую базу принято четыре. Изменения отразятся в релизе Python 3.8. Одно изменение отклонено, так как затрагивает устоявшуюся терминологию UNIX ptys, используемую другими проектами.
Среди принятых изменений:
"master process" заменён на "parent process";
"master option mappings" на "main option mappings";
"master pattern object" на "main pattern object";
В модуле ssl слово "master" заменено на "server";
В pty.spawn() параметр master_read заменён на parent_read;
Метод pty.slave_open() переименован в pty.child_open(), но вызов pty.slave_open пока оставлен для обратной совместимости;
В os.openpty() и os.forkpty() параметры master_fd/slave_fd переименованы в parent_fd/child_fd;
Внутренние переменные master_fd, slave_fd и slave_name переименованы в parent_fd, child_fd и child_name;
Опция "--slaveargs" заменена на "--worker-args";
Функция run_tests_slave() переименована в run_tests_worker().
Дополнение: Сообщество разработчиков СУБД Redis также обсуждает предложение по избавлению от терминов "master" и "slave". При этом, предлагаются более кардинальные изменения, такие как переименование операции "SLAVEOF" в "REPLICAOF" и настройки "slaveof" в "replicaof" (для сохранения совместимости поддержка "SLAVEOF" будет сохранена в виде опции). Поддержка признака "slave" в командах INFO и ROLE пока будет оставлена, так как связана с большими нарушениями совместимости. Но в будущем планируется предложить альтернативу INFO и заменить в ROLE "slave" на "replica".
Обсуждение поднял Сальвадор Санфилиппо (Salvatore Sanfilippo), создатель СУБД Redis, который не считает, что переименование оправданно, но вынужден реагировать из-за давления со стороны политактивистов, призывающих не использовать Redis из-за применения дискриминационной терминологии.
https://www.opennet.ru/opennews/art.shtml?num=49256
Предложение вызвало бурную дискуссию, которая привела к расколу сообщества на сторонников и противников переименования. Противники мотивировали свою позицию тем, что не следует смешивать политику и программирование, "master" и "slave" лишь термины, значение которых уже устоялось в компьютерной технике и не имеет ничего общего с одобрением рабства. Кроме того, замена устоявшихся терминов неизбежно вызовет путаницу среди разработчиков и может привести к нарушению обратной совместимости. Также упоминается, что одно дело когда какие-то выражения являются оскорбительными или непонятными, но в случае с "master" и "slave" имеет место лишь неопределенно сформированные представления о политической корректности, мешающие использованию простого английского языка.
Несмотря на намерение уйти с поста великодушного пожизненного диктатора, в спор пришлось вмешаться Гвидо ван Россуму и принять конечное решение. Из пяти коммитов, предложенных при обсуждении переименования "master" и "slave" на parent/main/server и child/worker, в кодовую базу принято четыре. Изменения отразятся в релизе Python 3.8. Одно изменение отклонено, так как затрагивает устоявшуюся терминологию UNIX ptys, используемую другими проектами.
Среди принятых изменений:
"master process" заменён на "parent process";
"master option mappings" на "main option mappings";
"master pattern object" на "main pattern object";
В модуле ssl слово "master" заменено на "server";
В pty.spawn() параметр master_read заменён на parent_read;
Метод pty.slave_open() переименован в pty.child_open(), но вызов pty.slave_open пока оставлен для обратной совместимости;
В os.openpty() и os.forkpty() параметры master_fd/slave_fd переименованы в parent_fd/child_fd;
Внутренние переменные master_fd, slave_fd и slave_name переименованы в parent_fd, child_fd и child_name;
Опция "--slaveargs" заменена на "--worker-args";
Функция run_tests_slave() переименована в run_tests_worker().
Дополнение: Сообщество разработчиков СУБД Redis также обсуждает предложение по избавлению от терминов "master" и "slave". При этом, предлагаются более кардинальные изменения, такие как переименование операции "SLAVEOF" в "REPLICAOF" и настройки "slaveof" в "replicaof" (для сохранения совместимости поддержка "SLAVEOF" будет сохранена в виде опции). Поддержка признака "slave" в командах INFO и ROLE пока будет оставлена, так как связана с большими нарушениями совместимости. Но в будущем планируется предложить альтернативу INFO и заменить в ROLE "slave" на "replica".
Обсуждение поднял Сальвадор Санфилиппо (Salvatore Sanfilippo), создатель СУБД Redis, который не считает, что переименование оправданно, но вынужден реагировать из-за давления со стороны политактивистов, призывающих не использовать Redis из-за применения дискриминационной терминологии.
https://www.opennet.ru/opennews/art.shtml?num=49256
|