Очередное дно в IT пробито — теперь разработчикам браузера Chromium нужно писать «гендерно-нейтральный» код, согласно их Code of Conduct (правилам поведения). И судя по всему, это же творится и в Google, но, к сожалению, оригинальный документ доступен только сотрудникам гугла (This document is based on an internal Google document by Rachel Grey and others).
Что же, то о чём предостерегал нас Эрик Реймонд, таки случилось — когда-то давно было важно писать рабочий и понятный другим людям код и никому не было важно, что у тебя между ног. Теперь же нужно стараться писать код так, чтобы при его прочтении не оскорбилось очередное, вечноуниженное (ради открывающихся при этом политических рычагов давления) меньшинство.
Небольшое пояснение для тех, кто не является IT-шником. Одно из основных требований к современному исходному коду — быть понятным для других программистов, которые этот код может и не писали, но которым придётся его читать и поддерживать (да, та самая шутеечка: «пиши код так аккуратно, как будто его будет поддерживать маньяк-психопат, который знает где живёт твоя семья» — именно отсюда). Для бизнеса в первую очередь важно, чтобы ваша программа работала и издержки по её поддержке и исправлениям багов были как можно меньше, а чем меньше рабочих часов будет потрачено на то, чтобы понять что же имел в виду Боб, когда писал эти странные три вложенных цикла, с указателями и обилием битовых операций — тем лучше (не берём в расчёт embedded и всякие узкоспециализированные вещи, где подобное вполне допустимо встретить).
Существуют целые книги (например, «Идеальный код» Стива Макконнелла), в которых объясняется как писать код так, чтобы он был легко и просто (можно сказать интуитивно) понятен другому программисту. И в этих книгах вы не найдёте ни слова о том, что ваш код должен (!) быть нейтральным для всяких меньшинств. Стоит понимать, что это требование не влияет на читабельность вашего исходного кода другими программистами — если они действительно в первую очередь программисты и занимаются на работе программированием, а не поиском того, на что бы им «триггернуться» и устроить очередной скандал в медиа с воплями о том какие все вокруг расисты, сексисты и фашисты.
По сути дела, требование писать "гендерно-нейтральный" код просто отнимает ценное время программиста, заставляя его выискивать всё, что может показаться обидным для SJW, вместо того, чтобы заниматься на работе реально важными вещами.
К тому же, как видно по скандалам на Гитхабе и в прессе, SJW может показаться обидным всё что угодно — начиная от устоявшихся выражений «master device»/«slave device» или "чересчур маскулинным" сокращением .bro в описании протокола HTTP/2 . И заканчивая личным твиттером ведущего разработчика, недостаточная степень уважения к трансгендерам в котором, приводит к обиженным требованиям уволить одного из ведущих программистов проекта.
Собственно, отрывок из Code of Conduct браузера Chromium, полон подобных, «полезных» для работы программиста нововведений, выдуманных теми, чья основная профессия — не писать код, а показательно оскорбляться, если это принесёт политические очки, известность и власть над людьми.
Далее, идёт цитата из CoC — вот что в современном мире требуют от разработчиков:
«Вещи, которых следует избегать в коде:
— Гендерные местоимения: он / она / его / её.
— Словосочетаний: «он или она», «её или его», «он(а)». Все эти словосочетания по прежнему исключают тех, кто идентифицирует себя другим гендером, и внутренне они (немного) показывают предпочтение одного гендера перед другим.
— «Ребята» (в оригинале «guys», к которому я затруднился подобрать более подходящее слово) — гендерно-нейтральный термин, который имеет «мужские» ассоциации. Обычно, это слово в комментариях используется для обозначения антропоморфного неодушевлённого объекта и оно должно быть заменено на более точный технический термин. Если это слово используется для обозначения людей, предпочитайте использование слов: «каждые», «люди», «вы все».
— Остальные гендерно-окрашенные слова: «брат», «мать», «мужчина» и т.д.
В следующих случаях допустимо ничего не менять:
— Отсылки к определённому человеку (например: «Рейчел в отпуске, следует обновить это когда она вернётся»).
— Имена. «Гай» и «Хи» («Guy and He») являются валидными именами.
— Код языка («he» код иврита по стандарту ISO 639-1)
— «He» как аббревиатура слова «Helium».
— Испанское слово «he».
— Отсылки к особым, выдуманным персонажам, например «Алиса» и «Боб» в описаниях работы криптопротоколов. Однако, в новых описаниях следует использовать буквы «А» и «Б» вместо имён.
— Цитаты из публично доступных книг.
— Договоры и прочие юридические документы, которые мы не можем больше поменять.
— Всякие гендерно окрашенные слова, встречающиеся в рандомно сгенерированных строках или строках в base64.
— Текст на языке отличном от английского, если вы конечно не владеете этим языком (прим. переводчика — видимо подразумевается, что если вы владеете этим языком, то должны убрать все обидные для SJW и всяких гендерофлюидных боевых вертолётов слова и оттуда).»
Что интересно, весь этот бред прямым текстом рекомендуется к выполнению, только потому что код будет «приятным для чтения» («reading biased code isn't enjoyable»)! В нём не станет меньше багов, он не станёт проще поддерживаться, просто его будет приятнее читать и никакому пантрнасгендерфлюдному вертолётосексуалу не придётся убегать в сейф-спейс, обливаясь слезами, как только он увидит в комментариях к коду это ужасное слово "he"! Обалдеть какая польза для разработки очередного программного продукта!
На закуску — регулярное выражение для vim'а, которое поможет цисгнедерным белым мужчинам — угнетателям всех "прогрессивных" PoC найти «плохие» слова в своём коде и удалить их оттуда:
/\<he\>\|\<she\>\|\<his\>\|\<hers\>\|\<him\>\|\<her\>\|\<guy\>\|\<guys\>|\<man\>\c
Другие страны, например наша, могли бы воспользоваться сложившейся ситуацией, чтобы выставить себя как идеальную для программистов страну, где можно просто писать код и не думать при этом об очередных идиотах с маниями, которым везде видится угнетение, "стеклянные потолки", расисты и насильники.
Но у нас, увы, есть свои тараканы, которые пока что не дадут создать IT-мекку для всех страждущих.