Совсем недавно мы рассказывали о том, что под влиянием протестов Black Lives Matter, прокатившихся по всей территории США (и не только), ИТ-сообщество вновь вернулось к обсуждению вопросов неуместной и оскорбительной терминологии. Внастоящее время многие разработчики прилагают усилия для удаления подобных терминов из своего исходного кода, приложений и онлайн-сервисов.
Подобные изменения обычно включают в себя отказ от использования терминов master и slave («хозяин» и «раб») в пользу таких альтернатив как main, default, primary и, соответственно, secondary. Также устоявшиеся понятия whitelist и blacklist, то есть «черный список» и «белый список», заменяют на нейтральные allow list и deny/exclude list («список разрешений» и «список запретов/исключений»).
К примеру, о намерении подыскать альтернативы для whitelist/blacklist в последнее время сообщили разработчики Android, языка программирования Go, библиотеки PHPUnit и утилиты Curl. В свою очередь, авторы проекта OpenZFS уже работают над заменой терминов master/slave, использующихся для описания связей между средами хранения.
Хотя многие проекты, которые не используют подобные термины напрямую в своем исходном коде или пользовательских интерфейсах, они обратили внимание на свои репозитории с исходниками. Дело в том, что большинство этих проектов управляют исходными кодами с помощью Git или GitHub, а Git и GitHub, в частности, используют обозначение master для дефолтного репозитория. Разработчики GitHub и Git пишут, что уже «работают над проблемой», а ряд опенсорсных проектов уже поддержали Black Lives Matter и сами изменили названия своих репозиториев с master по умолчанию на различные альтернативы (такие как main, default, primary, root и так далее). В их числе OpenSSL, Ansible, PowerShell, JavaScript-библиотека P5.js и многие другие.
Также в начале июля об изменениях такого рода сообщили разработчики компаний Microsoft, LinkedIn, Google и Twitter. Все они обещали изменить технический язык своих продуктов и инфраструктуры, и избавиться от таких терминов, как master, slave, blacklist, whitelist и так далее.
Ранее мы уже упоминали о том, что разработчики Linux тоже не остались в стороне, и обсуждение более инклюзивной терминологии велось уже довольно давно.
Как стало известно в конце прошлой недели, вопрос наконец был решен: Линус Торвальдс сделал соответствующий коммит и утвердил новую политику проекта в отношении оформления кода в ветке ядра Linux 5.8 (хотя изначально изменения предлагалось внести в ветку 5.9).
Третья редакция текста была одобрена 21 известным разработчиком ядра, включая членов Linux Foundation. В итоге было решено отказаться от использования таких понятий, как master/slave и blacklist/whitelist, а также не использовать слово slave отдельно.
Ожидается, что новые правила будут применяться к новому коду, а ревизию старого пока проводить не планируют, хотя разработчики не исключают, что, в конечном итоге, «переименование» затронет и немалую часть уже существующего кода. Устаревшие термины разрешено использовать лишь в случае необходимости.
Термины master/slave теперь рекомендовано заменять следующими аналогами:
- primary, main/secondary, replica, subordinate;
- initiator, requester/ target, responder;
- controller, host/device, worker, proxy;
- leader/follower;
- director/performer.
В свою очередь, термины blacklist/whitelist советуют заменять на более нейтральные версии:
- denylist/allowlist;
- blocklist/passlist.