Программисты, комментирующие свой код с помощью ругательств, пишут более грамотное ПО. Чем больше ругани, тем лучше код

Бизнес Кадры Техника Открытое ПО
, Текст: Дмитрий Степанов
Программисты, комментирующие свой код с использованием ругательств, возможно, пишут более грамотный код. Исследование, проведенное студентом немецкого вуза, показало, наличие связи между присутствием в комментариях к программе крепких выражений и общим качеством программного кода. Впрочем, делать далекоидущие выводы пока рано. В исследуемую выборку был включен лишь открытый код с GitHub, написанный на C – тема требует более глубокого изучения.

Ругательства как помощник программиста

Студент Технологического института Карслруэ (Германия) Ян Штреймель (Jan Strehmel) выявил связь между качеством программного кода и количеством ругательств в сопровождающих его комментариях, пишет Ars Technica. Анализ нескольких тысяч образцов «исходников» на языке программирования C с платформы GitHub показал, что в среднем содержащий ругательства открытый код содержит меньше ошибок, повторяющихся фрагментов и легче читается.

Идея исследования пришла в голову научному руководителю Штреймеля – специалисту по биоинформатике Александросу Стаматакису (Alexndros Stamatakis) после того, как он ознакомился с любопытным графиком, показывающим частоту появления слов, относящихся к ненормативной лексике, в коде ядра Linux от версии к версии.

Для проведения исследования Штреймель извлек из открытых репозиториев принадлежащего Microsoft хостинга ИТ-проектов GitHub около 3,8 тыс. образцов кода, содержащих бранные выражения, а также 7,6 тыс. – «чистых» с точки зрения использования обсценной лексики его авторами.

Программисты, склонные ругаться в комментариях, возможно, пишут более качественный код

Оценка качества кода производилась по одиннадцатибалльной шкале (от 0 до 10) автоматически – при помощи программы SoftWipe, первоначально разработанной для проверки научного ПО. Сканирование массива данных показало, что в среднем программы, в которых разработчики использовали крепкие выражения, получили на 0,5 балла больше, чем те, в которых нецензурная брань не применялась.

Стоит оговориться, что пока рано говорить о чем-то большем, нежели простой корреляции. Тема явно требует более глубокого изучения, чем, вероятно, и займется Штреймель в свой дипломной работе.

Критерии качественного кода

Утилита SoftWipe принимает во внимание такие показатели качества кода как суммарное количество предупреждений, выданных компилятором, санитайзером и статическим анализатором при его проверке (чем меньше, тем лучше); цикломатическую сложность кода (метрика оценки сложности/модульности программы); наличие фрагментов кода с нестандартным или непоследовательным форматированием; степень дублирования кода. Программа не учитывает тестовый код и не проводит его оценку. К таковому она относит любое содержимое файлов, имеющих в названии ключевое слово “test”.

По каждому из критериев анализируемый листинг получает целое число баллов в диапазоне от 0 до 10 (чем больше, тем выше качество кода). Все показатели являются равноценными.

Итоговая оценка представляет собой среднее арифметическое упомянутых выше оценок критериев качества.

Удивительный и любопытный результат

Результаты удивили как самого Штреймеля, так и его руководителя. Последний признается, что и сам нередко прибегает к крепкому словцу при написании программ, однако старается не выплескивать собственные негативные эмоции на людей, которым в будущем предстоит работать с его кодом. Поэтому в комментариях к софту Стаматакиса ругательств не найти.

Как отмечает Ars Technica, существует ряд научных исследований, которые указывают на то, что использование ненормативной лексики в отдельных случаях способно приносить пользу здоровью человека, в частности, способствуют уменьшению боли и улучшению физических способностей.

Специалист в области когнитивной психологии Бенджамин Берген (Benjamin Bergen) из Калифорнийского университета в Сан-Диего (США), автор книги «Какого Х: что ругательства говорят о нашем языке, мозге и нас самих» (“What the F: What Swearing Reveals About Our Language, Our Brains, and Ourselves”), при чтении лекций своим студентам изредка позволяет себе непечатно выражаться (разумеется, таким образом, чтобы не оскорбить присутствующих). Такой подход позволяет повысить вовлеченность студентов, подтверждает ряд независимых исследований, в частности, опубликованные в рецензируемых журналах Communication Quarterly и Communication Reports.

Тем не менее тезис о корреляции качества кода и количества ругательств, зафиксированных в тексте при его написании, академическим сообществом ранее не рассматривался, говорит Берген. По его словам, предположение о том, что между двумя этими факторами может быть связь является «очень захватывающей и интересной идеей».

Ученый предполагает, что программисты, которые много ругаются могут быть на самом деле в гораздо большей степени эмоционально вовлечены в выполняемую работу по сравнению со своими более сдержанными коллегами. Это обстоятельство может сказываться на качестве конечного программного продукта.

Согласно другой версии, высказанной Бергеном, программисты, вписывающие бранные выражения в свой код стремятся шокировать или повеселить тех, кто в дальнейшем будет заниматься поддержкой этого кода. В любом случае этот трюк способен привлечь внимание к коду людей, которые начнут его изучать.