Світ програмування повний дивних термінів. Є backend, теги, фреймворки та багато іншого. Однак, хоча деякі слова та фрази можуть здатися дивними, поки ви не звикнете до них, зазвичай вони не є образливими.
Існують деякі рідкісні винятки, однак, такі як часте використання master та slave. Майже не потребує пояснення, що це два потенційно проблематичні слова через їхні історичні конотації. Однак вони все ще широко використовуються в колах розробників та різних мовах програмування. Насправді їх використання настільки вбудоване, що більшість людей ніколи не зупинялися, щоб подумати про ці терміни.
Сьогодні ми говоритимемо більше про ці два проблемні терміни кодування. Ми обговоримо суперечки навколо їх використання, розглянемо дебати щодо можливості їх заміни та пояснимо, що деякі команди відкритого коду роблять для вирішення цієї проблеми. Поговоримо про термінологію!
Існування проблемних термінів кодування в відкритому коді
Як ми згадували раніше, існує багато суперечок щодо використання термінів master та slave в межах спільноти відкритого коду. Зазвичай, ці терміни відносяться до моделі комунікації, де один елемент має повний контроль над другим.
Наприклад, ви можете мати основні та допоміжні бази даних, де основна є первинною.
Якщо ви не є частиною технічної спільноти, це може здатися трохи дивним. Ми всі знаємо значення обох слів, а також їхній історичний контекст. Однак ці терміни існують уже деякий час, і більшість людей, які їх використовують, ніколи не ставлять під сумнів або не приділяють їм багато уваги.
Одночасно, вже деякий час деякі люди вказують на те, що їх використання може бути проблематичним. Ми можемо знайти посилання ще з 2004 року на суперечки навколо цього питання. Протягом того року Ініціатива Глобального моніторингу мови визначила сполучення master/slave як найбільш відвертий приклад політично некоректної термінології. З того часу відбулося багато обговорень у проектах з відкритим кодом щодо можливості заміни обох слів. Проте в розробницьких колах було висловлено багато цікавих аргументів з цього приводу
Чесно кажучи, ця ціла справа може здатися перебільшеною, якщо ви не провели останнє десятиліття, що варто врахувати.
Чому виникає суперечка щодо термінів Master та Slave
Коли терміни майстер та раб використовуються в спільноті відкритого коду, вони не стосуються людей. Якби це було так, ми могли б швидко завершити цю дискусію, адже майже всі погодяться, що нам потрібно знайти менш образливу термінологію.
Замість цього, ці терміни використовуються для позначення таких елементів, як бази даних, диски та багато іншого. Це приводить нас до причин, чому деякі люди проти заміни термінів головний та підлеглий, які ми можемо узагальнити у кілька пунктів:
- Обидва терміни існують уже давно, тому немає сенсу їх замінювати.
- У технічному світі ці слова не використовуються в образливому контексті.
Для деяких людей, master та slave це просто слова, і ідея того, що ми повинні відмовлятися від їх використання в програмуванні, здається марною тратою часу. З практичної точки зору, важко сперечатися проти цих аргументів. Однак, якщо ми говоримо про практичність, то варто також зазначити, що заміна цих термінів не вплине на проекти з точки зору функціональності.
Крім того, аргумент про те, що ми повинні триматися вживання одних і тих же слів, тому що завжди так робили, не є особливо переконливим. У суспільстві стало нормою запобігати вживанню образливої термінології, навіть якщо такі зміни відбуваються поступово. Було б легко вибрати замінні слова, які є менш емоційно навантаженими, і почати їх використовувати.
Це приводить нас до суті дебатів, яка полягає в тому, чи може слово саме по собі бути образливим незалежно від контексту. Деякі люди стверджують, що зміна термінів господар та раб становить поганий прецедент, оскільки завжди будуть слова, які ображають інших. Відкидаючи дискусії про слизькі схили, важко сперечатися з тим, що ці два терміни, зокрема, мають явно негативні конотації.
Загалом, важливо зазначити, що хоч ці слова можуть не впливати на вас особисто, вони можуть мати значний вплив на інших людей та їхнє сприйняття. Відкрите програмне забезпечення побудоване на співпраці, тому якщо ми можемо покращити середовище та зробити його більш дружнім для всіх, замінивши кілька слів, то це може бути розумним рішенням.
Як відкриті проєкти відмовляються від використання проблемних термінів у програмуванні
Дебати навколо термінів master та slave тривають вже настільки довго, що кілька компаній вже вжили заходів для їх вирішення. IBM та Microsoft, наприклад, використовують слова основний та репліка, коли згадують про бази даних у своїй документації.
Що стосується відкритих проектів, Python, Drupal і Django вже повністю видалили ці терміни зі своєї документації. Python пішов тим же шляхом, що й Microsoft та IBM, використовуючи первинний і копія. Django, з іншого боку, вирішив впровадити терміни лідер та послідовник.
Це лише найбільш відомі приклади, які ми змогли знайти. Існує також багато менших проектів, які вжили заходів для вирішення цієї суперечки. Більше того, факт того, що кілька великих гравців у технічному світі вважають використання цих термінів серйозною справою, відправляє чіткий сигнал, що інші, ймовірно, підуть їхнім прикладом.
Врешті-решт, чи замінювати терміни master та slave є особистим рішенням кожного розробника. Якщо ви є частиною відкритого проекту, досягти консенсусу може бути складніше. Однак, можливо, буде краще, якщо ми прагнемо замінити ці терміни в середовищі розробників. Адже етика відкритого коду полягає в доступності для всіх, що важко досягти, коли поширені терміни можуть відштовхнути частину потенційної спільноти.
Чи вважаєте ви, що проблемні терміни програмування потрібно змінювати?
Терміни master та slave є поширеними в області обчислень. Для багатьох людей ці слова не мають негативних конотацій, оскільки вони мають дуже специфічні значення в ІТ-світі. Однак, неможливо заперечувати їхню історичну вагу. З цим на увазі, завжди будуть люди, які вважають випадкове використання обох термінів у кодуванні проблематичним.
Хоча зміна термінології, яку ми використовуємо у програмуванні, може здатися незручною, це як можливо, так і відносно просто. Той факт, що кілька відомих проєктів, таких як Python і Drupal, вживають заходів для усунення використання термінів master і slave, є вже великим кроком. Позбавлення від цих термінів не лише хороший хід у плані PR, але й робить спільноту більш дружньою до тих, кому ці терміни можуть бути особисто образливими.
Чи вважаєте ви за доцільне замінювати проблематичні терміни кодування у мові розробки програмного забезпечення? Поділіться своїми думками з нами на Facebook або Twitter.