Код Шредінгера: про доступність вихідних кодів наукових програм

Сучасна наука немислима без машинної обробки результатів, але чи завжди вчені розуміють, якими програмами вони користуються і чи можна їм довіряти? Питання особливо гостро стоїть в астрофізиці, де результати наукових досліджень не так-то легко перевірити на практиці. Зрозуміти, як насправді йдуть справи в цій галузі, вирішили автори наукової статті, прийнятої до публікації одним з американських астрофізичних журналів. Детальніше про цю статтю та наступні з неї висновки на прохання розповідає доктор фізико-математичних наук, завідувач відділу фізики та еволюції зірок Інституту астрономії РАН Дмитро Зігфридович Вібе.


Журнал друкує статтю з цікавою назвою "Код Шредінгера: попереднє дослідження доступності наукових вихідних кодів і виживаності посилань в астрофізиці ". Її автори вирішили перевірити, наскільки доступні для зовнішньої перевірки вихідні коди програм, що застосовуються в астрономічних дослідженнях.


Доводи на користь необхідності такого дослідження наступні. Астрономія останніх десятиліть (як і інші галузі науки) все більше покладається на використання найрізноманітніших програм, проте вихідні коди цих програм досить рідко стають надбанням наукової громадськості, що іноді ускладнює перевірку представлених у статтях результатів. Традиція не виставляти вихідні коди на загальний огляд склалася досить давно, але в колишні часи у цього були об'єктивні причини: не дуже зручно було поширювати програми у вигляді роздруківок, магнітних стрічок і стосів перфокарт.

Тепер ситуація змінилася, і можливостей для публікації вихідних кодів стало набагато більше, але поки в астрономічний (та й у загальнонауковий) ужиток ця практика не увійшла. Між тим, ми дійсно дуже активно користуємося програмами, які написані іншими людьми, і віримо в те, що вони видають адекватний результат, часто не маючи можливості перевірити, що у цих програм всередині. Тому все частіше лунають заклики включити програми в загальний кругообіг наукових знань, наприклад проводити їх рецензування.

Проблема дуже багатогранна, і автори роботи задалися поки пошуками відповіді на досить вузьке питання: яка частка програм, використаних і чітко ідентифікованих у наукових статтях, які можуть бути перевірені іншими дослідниками? Навіть це виявилося непростим завданням, оскільки в астрономічних статтях часто не тільки не називають програму, яка застосовувалася для вирішення певної задачі, але і зовсім не пишуть, що це завдання вирішувалося програмним методом (хоча складність завдання робить це очевидним). У багатьох випадках вважається достатнім вказувати не саме використане програмне забезпечення (ПЗ), а посилання на іншу роботу, в якій це ПЗ названо («Ми використовували той же метод, що і в роботі Іванова та ін. 2013»).

Спочатку автори розглянули статті 2015 року в трьох провідних журналах: (MNRAS), (ApJ) і (A&A), проте потім визнали, що вибірки статей з MNRAS і ApJ можуть виявитися неподальними, і в підсумку обмежилися тільки журналом A & A.

Всього в цьому журналі в 2015 році було опубліковано 1805 статей. З їх числа автори виключили листи і повідомлення про помилки, а потім вибрали для аналізу кожну десяту роботу, отримавши в підсумку вибірку з 166 статей. Ці статті автоматично і вручну аналізувалися на предмет наявності згадок тих чи інших програм, використаних при роботі над статтею.

Пошук здійснювався за 21 ключовим словом, і в результаті в 166 статтях автори знайшли 715 згадок або натяків на використання програмних кодів. З цього числа були виключені згадки, за якими неможливо встановити використане ПЗ (інформація наведена в іншій статті; використання ПЗ констатується, але без зазначення конкретних назв; у статті очевидно використані якісь програми, проте прямого визнання цього немає).


Всього після відбракування залишилося 418 згадок. Автори розділили їх на 10 категорій: A - початковий код доступний для негайного завантаження, B - двійкові файли доступні для негайного завантаження, C - вихідний код доступний тільки співавторам, N - код недоступний для завантаження (вказаний сайт відсутній, сайт завантаження не вдається знайти, сайт завантаження знайдено, але не працює URL для завантаження тощо), W - код працює як онлайн-служба без надання вихідного коду, GS (soft gate) - код автоматично доступний для негайного завантаження після надання певної інформації (реєстрації), GH (hard gate) - для отримання доступу до коду потрібні тривалі дії (контакт з автором, реєстрація без негайного результату, відвідування тренінгів за програмою тощо), P1 - вихідний код можна придбати (в аналізованій вибірці це практично виключно Numerical Recipes), P2 - необхідне комерційне ПЗ, що купується у вигляді виконуваних файлів (наприклад, IDL), O - інше.

Підсумок для знайдених 418 згадок виявився таким: A — 262, B — 26, C — 4, N — 70, W — 21, GS — 5, GH — 16, P1 — 6, P2 — 6, O — 2. Ці 418 згадок відповідають 285 унікальним програмам. Серед них розклад такий: A — 162, B — 14, C — 4, N — 63, W — 16, GS — 2, GH — 10, P1 — 6, P2 — 6, O — 2. Найпопулярніша програма - IRAF - належить до категорії A і використана в 31 статті з вибірки. За нею йдуть SExtractor (10 згадок, категорія A), HIPE (7 згадок, категорія B) і GILDAS (5 згадок, категорія A). Все це програми для обробки результатів спостережень.

В цілому, частка програм з легко доступними вихідними кодами виявилася досить високою - близько 60 відсотків (категорії A, GS і P1). Решта 40 відсотків доступні у вигляді «чорних скриньок» (двійкові файли або веб-служби, категорії B і W), або доступні обмеженому колу дослідників, або недоступні взагалі. Автори підкреслюють, що доступність вихідного коду не гарантує його працездатності, оскільки вони не перевіряли, чи допускає ліцензія широке застосування коду, чи компілюється він, чи доступна для завантаження саме та версія, що була використана в конкретному дослідженні, тощо.

Принагідно автори представили ще два статистичних результати. По-перше, вони витягли з усіх статей журналу A&A 2015 року гіперпосилання і перевірили їх працездатність. Виявилося, що за два роки (дослідження проводилося в серпні-жовтні 2017 року) з приблизно двох з половиною тисяч посилань близько 10 відсотків вже не працюють. По-друге, для з'ясування доступності деяких кодів їм довелося написати повідомлення на електронну пошту їхніх авторів. На 46 відправлених листів вони отримали всього 19 відповідей. У 12 відповідях виражався намір рано чи пізно надати код у відкритий доступ. Всього в трьох випадках автори програм вказали посилання для їх скачування, і ще в одному випадку код був переданий для розміщення в ASCL (Astrophysics Source Code Library). Іншими словами з 46 спроб позитивний результат був отриманий всього в 4 випадках.

У мене не склалося єдиної думки з порушеного в статті питання. З одного боку, мені доводилося знаходити помилку в опублікованому вихідному коді програми Zeus2d, і це було добре. З іншого боку, кількість використовуваних програм зростає, а часу на їх перевірку немає. Іншими словами, мені все одно, чи доступний у мережі вихідний код якоїсь програми, оскільки перевіряти його я все одно не буду, безпідставно покладаючись на те, що всю необхідну перевірку провели невідомі мені автори.

Чи готовий я сам викладати вихідці написаних мною програм? І так, і ні. Якщо це буде просто публікація програм без додаткових зобов'язань, чому б і ні? Кому треба, нехай розбирається. Але ось затія з рецензуванням кодів мені видається досить-таки нереальною. У сучасних програмах, наприклад для моделювання газодинамічних процесів, мільйони рядків, і рецензувати їх просто неможливо. Залишається покладатися на стару добру інтуїцію і сподіватися, що велика помилка в коді яким-небудь чином видасть себе нефізичним результатом розрахунку.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND