- PVSM.RU - https://www.pvsm.ru -

Цензура в исходном коде .NET Framework

Пятничным вечером, проглядывая исходники с Reference Source [1], случайно наткнулся на подозрительно выглядящий комментарий:

Цензура в исходном коде .NET Framework - 1

Некоторые слова заменены на 4 тире. Ну ладно, иногда разработчики действительно бывают весьма экспрессивны [2] и не стесняются резких выражений… Но при всем желании я не смог вспомнить ни одного ругательства, которое бы подошло здесь по смыслу. Откуда же оно взялось?

К счастью, Github позволяет искать по коду репозитория, и можно вбить в поиск эти четыре тире:

github.com/microsoft/referencesource/search?q=----&unscoped_q=---- [3]

Пропускаем случайные совпадения с ASCII-форматированием и натыкаемся на несколько других случаев, в которых все становится понятно из контекста:

Цензура в исходном коде .NET Framework - 2

Табуированное слово — «race». Все упоминания идут в контексте "race condition [4]", то есть состояние гонки за ресурсы, а не человеческая раса. И тем не менее, они заменены.

Дальше — больше!

Цензура в исходном коде .NET Framework - 3

Цензура в исходном коде .NET Framework - 4

Кто-то всей душой ненавидит исключения? Кажется, нет. Предполагаю, табуированное слово здесь — «trap». Есть устойчивое выражение — «trap an exception», означающее перехват исключения, чтобы оно не всплывало вверх. Но у этого слова есть и другое [5] сленговое значение.

Ну да ладно. Это же все комментарии, мало ли что в них написано. На качество кода-то не повлияет?..

Цензура в исходном коде .NET Framework - 5

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

Особенно жестко досталось классу EnglishPluralizationService [6], который используется в EF6 для автоматической конвертации слов из единственного во множественное число и наоборот. Там порезано приличное количество словарных слов:

Цензура в исходном коде .NET Framework - 6

Цензура в исходном коде .NET Framework - 7

Большинство из них я не могу угадать, но t----zium — это trapezium (трапеция), а ch---is — это chassis (корпус).

К счастью, проблема наблюдается только в выложенных в данный репозиторий исходниках. Если декомпилировать настоящую сборку, никакой цензуры нет:

Цензура в исходном коде .NET Framework - 8

Дискриминация — действительно серьезная проблема современного общества. Но очень грустно, когда под видом борьбы с ней выдают вот такое…

Автор: Андрей

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/345142

Ссылки в тексте:

[1] Reference Source: https://github.com/microsoft/referencesource/

[2] бывают весьма экспрессивны: https://www.reddit.com/r/linux/comments/5offt1/occurrences_of_some_swear_words_in_the_linux/

[3] github.com/microsoft/referencesource/search?q=----&unscoped_q=----: https://github.com/microsoft/referencesource/search?q=----&unscoped_q=----

[4] race condition: https://en.wikipedia.org/wiki/Race_condition

[5] другое: https://www.urbandictionary.com/define.php?term=Trap

[6] EnglishPluralizationService: https://github.com/microsoft/referencesource/blob/3b1eaf5203992df69de44c783a3eda37d3d4cd10/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EnglishPluralizationService.cs

[7] Источник: https://habr.com/ru/post/486456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=486456