Разделы

ПО Свободное ПО Кадры Маркет

Из языка Python удаляют термины «раб» и «господин»

В Python термины master и slave, обозначающие соответственно «господин» и «раб», будут заменены более политкорректными аналогами. После долгих споров решение было принято лично создателем языка Гвидо ван Россумом.

Политкорректный Python

Из кода языка Python будут изъяты слова master и slave, поскольку они расцениваются как неполиткорректные. Напомним, master переводится с английского как «господин», а slave — как «раб». Часть разработчиков Python полагает, что эти слова в коде напоминают о рабстве (как об общественном и историческом явлении) и неравенстве людей (если говорить о правах и свободах).

Вопрос о замене терминов был поднят сотрудником Red Hat и одним из ключевых разработчиков Python Виктором Штиннером (Victor Stinner). В ходе обсуждения проблемы мнения разработчиков разделились. Часть сообщества выступила против политизированного истолкования устоявшихся терминов программирования, и, соответственно, против их замены.

По их мнению, раб и господин даже не могут считаться оскорбительными в политическом смысле, это всего лишь общеупотребительные слова английского языка — такого мнения, в частности, придерживается разработчик Раймонд Хеттингер (Raymond Hettinger). Высказывались также соображения, что замена терминов будет сбивать с толку разработчиков и отрицательно скажется на обратной совместимости.

Разработчику Ларри Хастингс (Larry Hastings) не понравилось, что Штиннер предложил исправления в виде пул-реквестов, поскольку это противоречит традиционно открытой модели управления Python, где все проблемы обсуждаются публично.

Те разработчики, которые поддержали идею замены терминов, предложили заменить master на parent, main и server, а slave — на child и worker. Четыре из пяти вариантов были предложены Штиннером. Окончательное решение о замене было принято лично создателем Python Гвидо ван Россумом (Guido van Rossum), несмотря на его намерение сложить с себя полномочия великодушного пожизненного диктатора. Из пяти предложенных вариантов были утверждены четыре, поскольку пятый имеет отношение к терминологии UNIX ptys, от которой зависят сторонние проекты. Изменения вступят в силу в Python 3.8.

Примеры изменений

Например, 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.

bdsm600.jpg
Из языка Python уберут термины master и slave

Метод pty.slave_open() получил название pty.child_open(), но из соображений обратной совместимости вызов pty.slave_open пока что был сохранен без изменений. Параметры master_fd и slave_fd в os.openpty() и os.forkpty() получили названия 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().

Напомним, Python сейчас является одним из самых широко используемых в мире языков программирования, идеальным для новичков и в тоже время нашедшим применение в масштабных проектах, в том числе YouTube, Instagram и Dropbox. Профильный ресурс CodingDojo поставил владение Python на второе место в списке самых востребованных работодателями навыков разработчика. Сайт вопросов и ответов для программистов Stack Overflow поместил его в 2018 г. на седьмое место среди самых популярных языков программирования, написания скриптов и разметки, причем в этом списке Python опередил такие языки как C#, Ruby и PHP.

Программные коды и политкорректность

Это не единственный пример изменения терминологии кода открытых проектов в угоду политкорректности за последние годы. В 2014 г. проект Drupal также после споров заменил master и slave на primary и replica. В том же году проект Django начал использовать вместо master и slave термины leader и follower. Проект CouchDB также в 2014 г. в свою очередь предпринял лингвистическую чистку. В 2015 г. на ресурсе GitHub появился пул-реквест с предложением отказаться от использования термина whitelist — «белый список». В прошлом году похожие дискуссии начались в сообществе разработчиков проекта Redis.

Какое коммуникационное решение для бизнеса выбрать — On-Premise или SaaS
Цифровизация

Еще в 2003 г. власти округа Лос-Анджелес выпустили по этому вопросу директиву для производителей электроники, которые ведут дела в округе. В директиве власти попросили изъять из обихода или заменить термины, предназначенные для именования оборудования или компонентов, если эти термины содержат в себе оскорбление или дискриминацию — например, master и slave. После протестов общественности власти свернули инициативу, заявив, что это было всего лишь предложение.

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

Валерия Шмырова