Разработчики, использующие ненормативную лексику в комментариях, создают более качественные программы. Интенсивность выражений коррелирует с улучшением кода
Экспрессивная лексика в работе кодировщика
Учащийся Технологического института Карлсруэ (Германия) Ян Штреймель (Jan Strehmel) обнаружил взаимозависимость между техническим совершенством программ и эмоциональной окраской сопровождающих их пояснений, сообщает Ars Technica. Изучение тысяч примеров исходных текстов на языке C с платформы GitHub продемонстрировало, что в среднем программные решения с экспрессивными комментариями характеризуются меньшим числом недочетов, уменьшенным дублированием фрагментов и повышенной удобочитаемостью.
Инициатива исследования возникла у научного куратора Штреймеля - эксперта в биоинформатике Александроса Стаматакиса (Alexndros Stamatakis) после изучения занимательного графика, отображающего динамику употребления лексики из категории нецензурной в различных версиях ядра Linux.
В рамках эксперимента Штреймель отобрал из публичных хранилищ GitHub (ИТ-платформы, принадлежащей Microsoft) приблизительно 3,8 тыс. примеров программного кода, содержащих эмоциональные выражения, и для сравнения - 7,6 тыс. вариантов, где авторы воздерживались от использования подобной лексики.
Анализ качества программирования осуществлялся по автоматизированной системе SoftWipe, изначально созданной для оценки научного программного обеспечения, с применением одиннадцатиуровневой шкалы (от 0 до 10). Исследование данных продемонстрировало, что в среднем проекты с использованием разработчиками экспрессивной лексики получали на 0,5 пункта выше, чем варианты без эмоционально окрашенных выражений.
Важно подчеркнуть, что на данном этапе можно говорить лишь о корреляционной связи. Данное направление определенно заслуживает более детального исследования, чем, по всей видимости, и планирует заняться Штреймель в своей выпускной квалификационной работе.
Параметры оценки программного кода
Программа SoftWipe учитывает следующие аспекты качества: общее количество предупреждений от компилятора, инструментов диагностики и статического анализатора (меньшее значение предпочтительнее); цикломатическую сложность программной структуры (метрика оценки сложности и модульности); наличие фрагментов с нестандартным или противоречивым форматированием; уровень повторяемости кодовых блоков. Утилита исключает из анализа тестовые модули, идентифицируя их по наличию ключевого слова "test" в названиях файлов.
По каждому параметру анализируемый код получает целочисленную оценку от 0 до 10 (более высокое значение соответствует лучшему качеству). Все критерии имеют равный вес при формировании итогового результата.
Финальная оценка вычисляется как среднее арифметическое значение всех перечисленных параметров качества.
Неожиданные и интересные выводы
Полученные результаты вызвали удивление как у самого Штреймеля, так и у его научного руководителя. Последний отмечает, что и сам иногда использует экспрессивные выражения в процессе программирования, однако стремится не переносить эмоциональную реакцию на коллег, которым впоследствии придется работать с его кодом. Поэтому в комментариях Стаматакиса невозможно встретить эмоционально окрашенных выражений.
Как сообщает Ars Technica, существует ряд научных работ, демонстрирующих, что в определенных ситуациях использование экспрессивной лексики может оказывать положительное влияние на состояние человека, в частности способствуя снижению болевых ощущений и улучшению физических показателей.
Когнитивный психолог Бенджамин Берген (Benjamin Bergen) из Калифорнийского университета в Сан-Диего, написавший книгу «Что за Х: значение ненормативной лексики для понимания языка, мозга и человеческой природы», во время преподавания иногда сознательно использует экспрессивные выражения (безусловно, соблюдая этические границы). Как показывают научные работы, включая публикации в авторитетных изданиях Communication Quarterly и Communication Reports, такая методика способствует росту заинтересованности аудитории.
Берген отмечает, что научное сообщество ранее не анализировало возможную взаимосвязь между качеством программного кода и частотой использования крепких выражений при его создании. Исследователь характеризует эту гипотезу как «чрезвычайно интригующую и многообещающую».
Ученый выдвигает предположение, что разработчики, активно использующие эмоциональную лексику, возможно, демонстрируют более глубокую вовлеченность в рабочий процесс compared с тактичными коллегами. Данный фактор потенциально влияет на итоговое качество программного обеспечения.
Альтернативное объяснение, предложенное Бергеном, заключается в том, что программисты, оставляющие в коде выразительные комментарии, возможно, стремятся удивить или развлечь будущих сопровождающих этот код специалистов. В обоих случаях подобный прием помогает привлечь дополнительное внимание к анализу программного кода.