Недавно Che (исследователь-когнитивист, профессор, гурман и просто мой хороший друг) принес посмотреть код одной статьи. Статья третьих авторов, про ботов в онлайн-экспериментах. Ему показалось, что там есть косяк в расчетах и он хотел еще одной оценки.
Открыл я код, а там… как будто последних двадцати пяти лет развития языка не было (код на R). Архаичные конструкции, базовый R без каких-либо пакетов, глобальные присвоения из области видимости функции, и прочий мрак и ужас. В студенческих работах, конечно, можно и не такое встретить. Но тут-то вроде взрослые и достаточно опытные исследователи, почему.
И да, баг был. Реализация groupby, которая была использована в коде (tapply), чувствительна к порядку сортировки наблюдений. А в данных как раз оказалось так, что по одному испытуемому была проведена еще одна сессия, под тем же id, но не подряд с предыдущей сессией. Само собой, в современных фреймворках для работы с таблицами такой дичи не встретишь.
Мораль сей прохладной истории проста — идите в ногу со временем и не копите техдолг. Чтобы не было багов и вопросов в духе “а представь, какого качества их исследования, если они пишут такой код”. Это и про обновления pandas с 1.X махом до 3.Х, и про AI-инструменты
И вообще. Как говорил коллеге один мой лид много лет назад, “не слишком ли ты молод, чтобы быть старовером?”. Что-то в его предъяве было, пожалуй.