Популярный форум для разработчиков Stack Overflow в течение двух недель собирал статистику нажатий Ctrl+C или Command+C при копировании кода и других ответов. Но то, что задумывалось как первоапрельская шутка, стало в итоге серьёзным исследованием.
Шалость удалась
За день до 1 апреля на Stack Overflow появилась забавная новость. Форум объявил, что выпускает свой первый гаджет – клавиатуру, на которой всего три кнопки: C, V и логотип ресурса, который заменяет Ctrl на компьютерах с Windows или Linux и Command на Mac.
Авторы пояснили: «Говорят, хорошие художники копируют, а великие воруют. Они были не правы. Великие художники, разработчики и инженеры копируют. А потом вставляют».
На самом же деле в код ресурса добавили функции, которые отслеживали количество копирований. Многие сайты используют защиту от копирования или добавляют ссылку на свои страницы в скопированный текст. Но здесь идея была в другом – авторы хотели подсчитать, насколько часто разработчики копируют код из ответов на ресурсе.
Авторы «клавиатуры для копипаста» признались: получили немало заказов на несуществующий гаджет. И намекнули, что шутки шутками, но они работают над «чем-то в этом направлении».
Все копируют
Исследование проводилось с 26 марта по 9 апреля. Инструменты веб-отслеживания Stack Overflow собирали достаточно много информации. Они отмечали, откуда копируются данные: из вопроса, ответа или других комментариев, из блока кода или обычного текста, из принятого предложения. Анализировали и репутацию копировавших на Stack Overflow, и региональную привязку IP-адреса, и оценку ответа, которая формируется по итогам голосования пользователей в теме.
Оказалось, что каждый четвертый пользователь, который заходит на Stack Overflow, копирует код или другую часть ответа в течение первых пяти минут пребывания на странице. За две недели наблюдений посетители 40 623 987 раз нажали комбинацию клавиш для копирования в 7 305 042 сообщениях и комментариях.
Пользователи копировали текст из ответов примерно в 10 раз чаще, чем из вопросов, и в 35 раз чаще, чем из других комментариев, а блоки кода – в 10 раз чаще, чем окружающий их текст. Самое удивительное – в том, что люди чаще копировали вопросы без принятых на форуме ответов, чем из одобренных вариантов решения проблем.
Факты в цифрах
Авторы исследования визуализировали данные, чтобы сделать результаты нагляднее. Они установили, что подавляющее большинство пользователей (86%), которые копировали код или другой текст, имели нулевую репутацию – это те, кто пока не зарегистрировался на форуме или, по крайней мере, не авторизовался.
Чаще всего код копировали в течение рабочей недели и в рабочее время. 33% нажатий пришлось на пользователей из Азии, 30% – на Европу, 26% – на Северную Америку.
Максимальное число копирований пришлось на посты с группами тегов |python|pandas|, |python|pandas|dataframe| и |python|matplotlib|. В целом же список самых популярных комбинаций тегов выглядит так:
Рекордсменом стал блок кода о том, как перебирать строки в DataFrame в Pandas, популярной библиотеке для Python. Ответ на этот вопрос был дан в 2013 году, и за это время код из него скопировали 11 829 раз.
Самый копируемый вопрос с блоком кода – «Как создать HTML-кнопку, которая работает как ссылка». На нём нажали Ctrl+C 3 665 раз.
Чемпион по количеству копий среди комментариев – один из ответов в теме «Как изменить размер рисунка, нарисованного с помощью matplotlib?». Его скопировали 4924 раз.
Но авторы исследования подчеркнули: копирование кода – это повторное использование знаний, и само по себе оно полезно. Копипаст помогает учиться, быстрее создавать рабочий код, а также уменьшает разочарование от профессии или от конкретной задачи.