Мир программирования полон странных терминов. Есть backend, теги, фреймворки и многое другое. Однако, хотя некоторые слова и фразы могут звучать странно, пока вы не привыкнете к ним, обычно они не являются оскорбительными.
Существуют некоторые редкие исключения, однако, такие как частое использование master и slave. Не нужно говорить о том, что это два потенциально проблематичных слова из-за их исторических коннотаций. Однако они все еще широко используются в кругах разработчиков и различных языках программирования. Фактически, их использование настолько встроено, что большинство людей никогда не задумывались о значении этих терминов.
Сегодня мы подробнее поговорим о двух проблемных терминах в кодировании. Мы обсудим споры вокруг их использования, представим дебаты о возможности их замены и объясним, что некоторые команды с открытым исходным кодом делают для решения этой проблемы. Давайте говорить о терминологии!
Наличие проблемных терминов в программировании в открытом коде
Как мы упоминали ранее, вокруг использования терминов master и slave в сообществе открытого кода существует много споров . Обычно эти термины относятся к модели связи, в которой один элемент полностью контролирует второй.
Например, у вас могут быть основная и ведомая базы данных, при этом основная является главной.
Если вы не являетесь частью технического сообщества, это может показаться немного странным. Все мы знаем значение обоих слов, а также их исторический контекст. Тем не менее, эти термины существуют уже давно, и большинство людей, использующих их, никогда не задумываются об этом и не придают этому большого значения.
В то же время уже какое-то время некоторые люди отмечают, что их использование может быть проблематичным. Мы можем найти ссылки ещё с 2004 года на дискуссии по этому вопросу. В том году инициатива Global Language Monitor выбрала связку master/slave как наиболее грубый пример политически некорректной терминологии. С тех пор в сообществах открытого кода ведётся много обсуждений о возможности замены обоих слов. Однако было сделано много интересных аргументов по этому поводу
Честно говоря, если не учитывать последнее десятилетие, то может показаться, что это дело сильно раздуто, что стоит учитывать.
Почему возникает спор о терминах Master и Slave
Когда в сообществе открытого кода используются термины master и slave, они не относятся к людям. Если бы речь шла о людях, мы могли бы быстро завершить этот разговор, поскольку почти все согласились бы, что нам нужно придумать менее оскорбительную терминологию.
Вместо этого эти термины используются для обозначения элементов, таких как базы данных, диски и другие. Это приводит нас к причинам, по которым некоторые люди выступают против замены терминов мастер и слейв, которые мы можем описать несколькими пунктами:
- Оба термина существуют уже давно, поэтому нет смысла их заменять.
- В техническом мире эти слова не используются в оскорбительном контексте.
Для некоторых людей master и slave — это просто слова, и идея, что мы должны отказываться от их использования в программировании, кажется пустой тратой времени. С практической точки зрения трудно спорить с этими аргументами. Однако, если мы будем практичными, то также стоит отметить, что замена этих терминов не повлияет на функциональность проектов.
Кроме того, аргумент о том, что мы должны придерживаться использования тех же слов, потому что всегда делали это, не особенно убедителен. В нашем обществе стало нормой отказываться от использования оскорбительной терминологии, даже если на это уходит время. Было бы неплохо выбрать альтернативные слова, которые гораздо менее нагружены и начать использовать их вместо прежних.
Это приводит нас к сути дебатов, а именно, может ли слово само по себе быть оскорбительным независимо от контекста. Некоторые люди могут утверждать, что изменение терминов «владелец» и «подчинённый» устанавливает плохой прецедент, поскольку всегда будут слова, которые кто-то найдет оскорбительными. Однако, откладывая в сторону дебаты о скользком склоне, трудно спорить с тем фактом, что эти два термина, в частности, имеют явно негативные коннотации.
В целом, важно помнить, что хотя эти слова могут не влиять на вас лично, они могут существенно повлиять на других людей и их восприятие. Открытое сообщество строится на сотрудничестве, поэтому, если мы можем улучшить среду и сделать её более дружелюбной для всех, заменив пару слов, то, возможно, это и стоит сделать.
Как проекты с открытым исходным кодом борются с использованием проблематичных терминов в программировании
Дебаты вокруг терминов мастер и раб продолжались настолько долго, что несколько компаний уже предприняли шаги для их решения. IBM и Microsoft, например, используют слова основной и реплика при ссылке на базы данных в их документации.
Что касается проектов с открытым исходным кодом, Python, Drupal и Django полностью исключили эти термины из своей документации. Python пошёл по тому же пути, что и Microsoft и IBM, используя основной и реплика. Django, с другой стороны, выбрал термины лидер и последователь.
Это лишь наиболее известные примеры, которые мы смогли найти. Также существует множество меньших проектов, которые предприняли шаги для решения этой проблемы. Кроме того, тот факт, что несколько крупных игроков в мире технологий считают, что использование этих терминов стоит серьёзного внимания, отправляет чёткий сигнал, что другие, вероятно, последуют их примеру.
В конечном итоге, решение о замене терминов master и slave является личным выбором каждого разработчика. Если вы участвуете в проекте с открытым исходным кодом, достичь консенсуса может быть сложнее. Тем не менее, возможно, будет лучше, если мы будем стремиться к замене этих терминов в кругах разработчиков. В конце концов, этика открытого исходного кода – это доступность для всех, которую трудно достичь, когда широко используемые термины могут оттолкнуть часть потенциального сообщества.
Считаете ли вы, что спорные термины в программировании следует изменить?
Термины master и slave распространены в области вычислений. Для многих людей эти слова не несут негативных коннотаций, поскольку они имеют очень конкретные значения в мире ИТ. Однако нельзя отрицать их историческую значимость. Исходя из этого, всегда будут люди, которые считают случайное использование обоих терминов в программировании проблематичным.
Хотя изменение используемых в программировании терминов может показаться неудобным, это вполне возможно и относительно просто. Тот факт, что несколько известных проектов, таких как Python и Drupal, предпринимают шаги по исключению использования главного и подчиненного, уже является большим шагом. Избавление от этих терминов не только хороший PR-ход, но и делает сообщество более дружелюбным для тех, кто может считать их лично оскорбительными.
Вы считаете, что имеет смысл заменять проблемные термины программирования в языке разработки программного обеспечения? Поделитесь своими мыслями с нами на Facebook или Twitter.