Спецпроекты

Из языка программирования Go вычистили термины master, slave и blacklist

9772
ПО Софт Техника

Разработчики языка программирования Go заменили термины master, slave, blacklist и whitelist, признанные политически некорректными, на их нейтральные аналоги. Истинную причину изменений они не раскрывают, но это может быть связано с забастовками афроамериканцев, вызванными смертью темнокожего Джорджа Флойда при задержании его полицией.

Политически корректный язык

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

Модерации подверглись такие слова, как master (хозяин), slave (раб), blacklist (черный список) и whitelist (белый список). Так, master и slave были заменены на нейтральные process, pty, proc и control (в зависимости от контекста), тогда как термин blacklist превратился в blocklist (блоклист), а whitelist – в allowlist (список разрешений).

Go, также известный как Golang – это разработанный специалистами Google компилируемый многопоточный язык программирования. Работа над ним началась в сентябре 2007 г., а первая финальная версия языка вышла в ноябре 2009 г.

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

По словам разработчиков, меняя одни термины на другие, они не пытаются тем самым начать новые дебаты о терминах в различных техпроектах. По их мнению, чтобы убрать одни термины и заменить их на другие (нейтральные) достаточно всего лишь факта существования людей, которых те или иные слова обижают.

go600.jpg
Беспорядки в США из-за смерти Джорджа Флойда тоже могли стать причиной «антирасистских» изменений в Go

Об этом сообщил руководитель отдела криптографии и безопасности в отделе разработки языка Go в Google Филиппо Валсорда (Filippo Valsorda). Он подчеркнул, что слова allowlist и blocklist более понятны в сравнении whitelist и blacklist, и добавил, что внесенные изменения в целом окажут положительный эффект.

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

«Повсеместная» практика

Решение об отказе от неполиткорректных терминов приняли не только авторы Go. Более того, они даже не были первыми в этом плане.

На аналогичный шаг пошли создатели резидентной системы управления базами данных (СУБД) Redis, движка Drupal, документо-ориентированной СУБД CouchDB, а также Django – свободно распространяемой рабочей среды для веб-приложений на языке Python. Для примера, в 2014 г. Drupal также после споров заменил master и slave на primary и replica. В том же году проект Django начал использовать вместо master и slave термины leader и follower.

Идентичные изменения произошли и с CouchDB, и тоже в 2014 г., а в 2015 г. на ресурсе GitHub появился пул-реквест с предложением отказаться от использования термина whitelist. В сентябре 2019 г., как сообщал CNews, слова master и slave были изъяты из языка Python.

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

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

И Chrome туда же

Спустя несколько часов после публикации разработчиками Go решения о замене терминов их примеру последовали другие сотрудники Google – создатели браузера Chrome, а также проекта Chromium. Они решили полностью исключить из кода своих продуктов термины blacklist и whitelist и заменить их на blocklist и allowlist соответственно.

Первые попытки избавиться от неполиткорректных терминов в коде браузеров были предприняты Google в 2018 г., но, как обнаружилось, сделать это не так просто, как казалось на тот момент. В настоящее время код Chrome содержит значительное количество ссылок на слова blacklist и whitelist. Что касается проекта Chromium, то он, в дополнение к более чем 2000 ссылок и упоминаний blacklist и whitelist, может «похвастаться» полноценным разделом под названием components/blacklist.

Что еще могло послужить причиной

Хотя разработчики и не говорят об этом напрямую, но внесенные в язык программирования Go и планируемые к внесению в код Chrome и Chromium изменения могут иметь определенное отношение к происходящему в настоящее время США. Страна охвачена массовыми акциями протеста, мародерством, грабежами и прочими беспорядками, причиной которым послужила смерть афроамериканца Джорджа Флойда (George Floyd) при задержании его полицией штата Миннеаполис.

Флойд попытался расплатиться за товар фальшивой купюрой, что и стало причиной ареста. За последние несколько лет он неоднократно отбывал срок за различные преступления, но это не помешало другим афроамериканцам превратить его смерть в повод для бесчинств и проявлений расизма по отношению к людям со светлой кожей.