Чому дослідницькі документи, в яких згадується спеціальне програмне забезпечення, не випускають вихідний код? [зачинено]


69

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

Наприклад, цей документ закінчується на:

Результати

Система малювання людських ліній реалізована через рамку Qt в C ++ за допомогою OpenGL і працює на двоядерній робочій станції Intel 2,00 ГГц без будь-якої додаткової апаратної допомоги. Ми можемо інтерактивно малювати лінії, поки система синтезує новий шлях та текстуру.

Чи зберігають вони вихідний код навмисно через монетизацію, яку вони мають намір зробити з ним, або через авторські права?


42
З тієї ж причини більшості газет не вистачає необроблених даних (публікуючи лише статистично спотворені "результати").
SK-логіка

2
Я редагував питання. Можливо, "згадка" - не найкраще слово. У деяких випадках деякі пункти, викладені в статтях, критично залежать від програмного забезпечення, але програмне забезпечення є паровим. Як і у випадку, щоб правильно оцінити обгрунтованість документа, хтось повинен мати можливість запускати програмне забезпечення.
Каз

7
@JohnL Я б сказав , що документ може критично залежати від програмного забезпечення , не будучи про програмному забезпеченні. Наче цікава властивість світу, яку демонструють / знаходять за допомогою програмного інструменту. Якщо ми не можемо переглянути інструмент, як ми можемо знати, що висновок правильний? (А точніше: перевірити його набагато простіше, якщо ми зможемо побачити інструмент!)
Андрес Ф.

4
@Andres F - Одна з можливостей - реалізувати власну версію програмного забезпечення, використовуючи ідеї, описані в статті. Хоча це більше роботи, це, мабуть, має і більшу цінність - повторення тієї ж реалізації знову лише демонструє одну реалізацію. Нова реалізація допомагає продемонструвати, що самі ідеї є дійсними, а не є деякими деталями реалізації. Під час повторної реалізації можуть бути виявлені значні проблеми, які, можливо, не були помічені або описані раніше.
Steve314

3
@KonradRudolph, звичайно, він не завжди буде доступний. Він може навіть стати недоступним через пару років з моменту публікації (стрічки стираються та використовуються повторно, вся група розформована, подрібнена папір тощо)
SK-логіка

Відповіді:


71

На думку спадають кілька причин.

  • Код занадто великий для статті. Протягом короткого періоду часу цікаві проекти були досить короткими, щоб бути опублікованими разом із документом, який їх описував. Це все ще може статися, але багато проектів достатньо великого розміру, щоб бути цікавими, стали надто великими, щоб бути опублікованими з документами, що їх описують.
  • Громадські господарі не безкоштовні чи довговічні. До недавнього часу дешеві, довговічні, легкі для доступу громадські хости не були доступними.
  • Опублікувати документ простіше, ніж опублікувати проект. Деякі люди встигають опублікувати документ чи проект, але не те й інше.
  • Стимули, прив’язані до ролі. Багато років тому я поцікавився у колеги щодо розробки продуктів та патентів, і я зрозумів, що більшість людей там дуже багато зробили те чи інше. Як і у письменників з паперу (think академій) та розробників з відкритим кодом, винагорода спрямована на один або інший робочий продукт.
  • Самомотивація. Бажання описати ідеї або реалізувати код не завжди присутній в рівних частинах в одній людині. Багато моїх професорів відкрито визнали, що або ніколи не кодували дуже багато, або були багато років від того, щоб вільно кодувати. Так само багато розробників ледве хочуть писати коментарі у свій код або коли вони зобов’язуються контролювати джерело.
  • Стійкість хостингу та роботи продукту також є проблемою. Хто хоче зв’язати десь те, що може піти через кілька років, і в результаті зменшить цінність паперу.
  • Традиція. Видавці орієнтовані на огляд та публікацію робіт, але, можливо, не готові брати ту саму оцінку для проектів.
    Також традиційні погляди на те, що є чутливим рівнем відтворюваності, різняться між полями. Очікується, що хімік, який публікує документ про новий метод синтезу, запише достатньо деталей, щоб інший хімік здійснив синтез. Від неї не очікували, що вони доставлять освітян та продукт до журналу. Читачі, які хочуть використовувати / відтворити папір, очікують, що вони придбають власних освітян та самі синтезують у своїй лабораторії (хоча вони можуть попросити зайти та відвідати лабораторію, щоб побачити, як це робиться на практиці). Також не слід очікувати, що біолог приєднає до паперу своїх нових трансгенних мишей. Цей погляд на відтворюваність відповідає, наприклад, даючи опис алгоритму (псевдокод) на відміну від доставки фактичної реалізації.
  • Голий код може бути шокуючим . Потрібно набагато менше шліфування для того, щоб прочитати документ, який переглядається на папері, ніж перевірити код, переглянути код та забезпечити якість проекту. У мене є багато коду, про який би мені було зручніше розповідати, ніж показувати. Сподіваємось, все рухається вперед до того моменту, коли всі ми будемо писати прекрасний код, але якщо ваш код поспішно, ледве чи не працює повністю, вам може бути зручніше не ділитися виконуваними файлами чи джерелом.
  • Закрите джерело. Не всі охопили відкритий код. Багато робіт написано про роботу для DoD, комерційних проектів або приватних фінансуючих проектів, де є користь від викриття проекту перед громадськістю, але все ще є комерційна таємниця або спочатку ринкові переваги, які можуть бути зруйновані відкритим кодом або інші продукти праці.
  • Опублікуйте подальшу роботу на основі цього коду. Якщо код не опублікований, він може дати перевагу автору в публікації подальших робіт. Іншим конкуруючим дослідникам може знадобитися повторно виконати роботу, яка може зайняти дорогоцінний час.

27
Якщо папір залежить від вихідного коду, його не слід публікувати. Якщо ви не можете опублікувати код, ви не можете опублікувати папір. Папір, в якій сказано, що "наша програма робить ці чудові речі", і ви не можете оцінити папір, не запустивши цю програму, тоді папір межує з рекламною брошурою для певного програмного забезпечення.
Каз

3
За повною згодою з Kaz - якщо для рецензування дослідження вам потрібно щось, що недоступне (дані, код тощо), воно не повинно прийматись рецензованим журналом. Практично всі аргументи, про які згадує DeveloperDon, справедливі і для випуску даних ... проте в даний час зараз спостерігається досить великий рух до цього.
Джо

3
ВЕЛИКИЙ пост. Додам також, що іноді окремі вчені відтворюють програмне забезпечення самостійно - ЧАСТИНА повторюваності експерименту. Якщо вона працює лише так, як її зашифрувала одна людина, але не так, як кодують її інші ... то результати можна поставити під сумнів і помилки можна виявити.
Jimbo Jonny

4
ваш другий до останнього пункту найсильніший
l --'''''--------- '' '' '' '' '' ''

4
@AndresF. Кодекс - це найменш важлива річ у роботі. Доповідь "Ось що я зробив; ось мої методи; ось мої результати". Код - це кодифікація методу, і він повинен дати точно такі ж результати. Якщо ви хочете відтворити результати паперу, але використовувати код паперу, ви нічого не відтворили; що ви повинні зробити, це прочитати розділ про методи, придумати власну реалізацію, а потім написати документ про це, коли ви не зможете відтворити їх результати.
Tacroy

40

Прочитайте презентацію Рендалла Левека на тему "Топ-10 причин не ділитися своїм кодом (і навіщо це робити все-таки)" http://facturing.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

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

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


7
+1 Відмінна презентація. Я радий, що люди наполягають на змінах :)
Андрес Ф.

+1 Дякую за посилання; це може допомогти мені в моїх постійних переговорах з моїм начальником щодо випуску частини нашого коду як Open Source.
Френк

Слово вгору! Гарна аналогія заслуговує на мене голосування.
недійсний

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

27

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

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


2
Я не думаю, що вам доведеться надсилати будь-кому, хто запитає у вас дорогоцінний код ... ІМХО Ця відповідь неправильна. Але я хотів би бачити дослідний світ , де інформація вільна ...
Dirk

3
@Dirk Наскільки я знаю, це відносно часто в емпіричних дослідженнях програмного забезпечення. В останньому (ще не прийнятому) моїй команді в цьому домені один із рецензентів явно попросив публічного доступу до наших даних, а також деяких фрагментів коду. Я не розумію, чому код повинен бути таким дорогоцінним. Це (загалом) лише реалізація ідей, описаних у статті. Публікація програм - це спосіб дозволити читачеві перевірити, чи правильно ми перекладаємо свої ідеї на дії.
mgoeminne

1
Гм, значить, ви (а) хто ваш рецензент, і (б) надаєте свій код та дані тому, хто може з вами бути в прямій конкуренції?
Дірк

1
Не справді тому, що: (a) Рецензенти просять опублікувати код у місці, до якого вони можуть отримати анонімний доступ (або автентифікацію проводить журнал) (б) Оскільки ваш документ опублікований, інші дослідники можуть відверто використовувати ту саму методологію / інструменти для копіювання вашого дослідження на інший набір даних або навіть на той самий набір даних. Тиражі менш престижні, ніж оригінальний папір, вони цитуватимуть вашу роботу, і вони пропонують вагому підтвердження вашому документу. Тож оригінальні автори раді дозволити іншим робити всю цю роботу за них.
mgoeminne

@Paul Я не бачу зв'язку з публікацією вихідного коду. У будь-якому разі, хороші редактори звертають увагу на нотатки, які рецензенти пишуть, щоб виправдати свої рішення. Тому згадки на кшталт "Це фігня" не враховуються. Якщо редактор вважає, що рекомендації рецензентів недостатньо актуальні, він запитує думку іншого експерта. Студенти не беруть участі в огляді. І якщо ви не можете дозволити вашій роботі після декількох років подання, слід вважати, що цей документ (або його зміст) не є таким хорошим.
mgoeminne

14

Це не закрите джерело. Програмне забезпечення взагалі не було опубліковано.

Коротка відповідь:

Існує кілька причин не публікувати програмне забезпечення, але рідко публікувати програмне забезпечення із закритим кодом.

Довга відповідь:

Закрите джерело означає, що програмне забезпечення було опубліковано, а вихідний код - ні. Але загальним випадком є ​​те, що ні програмне забезпечення, ні вихідний код не опубліковано .

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

Справжнє питання:

Чому вони не публікують програмне забезпечення?

Для цього є кілька причин:

  • Опубліковане програмне забезпечення потребує документації. Зазвичай люди не люблять писати документацію.
  • Опубліковане програмне забезпечення може залучати користувачів. У користувачів можуть виникнути запитання. Для цього потрібен час (але див. Вище).
  • Опубліковане програмне забезпечення може вимагати нетривіального обслуговування.
  • Для публікації програмного забезпечення потрібен хостинг.

Список можна було б скласти довше. Це заслуговує на те, щоб бути окремим питанням, не тут, на Academia.SE.

(Зауважте, що в моїй групі ми публікуємо наше програмне забезпечення - ліцензоване під GPL )


Можливо, також можливо опублікувати код, але згідно ліцензії, яка не дозволяє змінювати.
асмерер

Я навіть не замислювався над цією ситуацією, коли автори публікують лише складену версію лише для того, щоб довести, що програмне забезпечення насправді існує, тому що це не допомагає зрозуміти, як вони це зробили - як я маю на увазі деталі реалізації. Я люблю читати джерело код!
alecail

8

Це може здатися цинічним, але, на мій досвід, дослідницькі роботи не написані для того, щоб їх було легко зрозуміти або відтворити просто. Натомість у дослідницькій спільноті важливіше мати статтю, яка звучить і виглядає дуже науково. З цієї причини більшість авторів перетворюють свій код у математичні формули і намагаються довести, що їх алгоритм є математично правильним. Зазвичай кількість сторінок для такої статті обмежена, тому не залишається місця для публікації коду. Тим не менш, це, звичайно, не обмежує жодного автора посиланням на повний код з URL-адресою ...

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

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

Завжди майте на увазі, що в університетах важливі не стільки результати, ні застосовність досліджень, скільки кількість публікацій, які ви публікуєте. Це сумно, але правда.


13
Це, як кажуть, спробуйте запитати у дослідників! Іноді вони нададуть вам вихідний код.
Lucina

3
Я не думаю, що ви тут абсолютно чесні: "Натомість у дослідницькій спільноті важливіше мати статтю, яка звучить і виглядає дуже науково". Це означає, що основний вміст не має значення, майже тому, що ви не можете його зрозуміти, оскільки він виглядає науково. Кількість публікацій, які ви публікуєте, майже не має значення, якщо нікого не цікавить зміст. Ця реакція, на мій погляд, швидше говорить про ваші забобони, а не про реальність.
temptar

2
@temptar Ну, можливо, я трохи негативно упереджений. Що насправді мене найбільше вражає, це те, що більшість дослідників, очевидно, не готові описувати свої дослідження так, як це легко зрозуміти. Одного разу у мене був професор, який, пояснивши мені алгоритм, додав: "Але в статті ми напишемо це складніше, щоб воно звучало більш науково".
codingFriend1

6
@ codingFriend1 - ви не можете і не повинні узагальнювати на основі одного єдиного досвіду. Це глибоко ненауковий підхід. Ви повинні врахувати, хто є цільовою аудиторією для наукового співробітника, і в багатьох, багатьох випадках не люди потребують того пояснення, яке ви вважаєте за потрібне. Це те, для чого ми маємо наукові комунікації - наближення до неспеціалістів.
темптар

3
Я підтримую відповідь codingFriend1. Це була загальна критика, спрямована на наукове співтовариство, де я живу, і конкретно на мій університет (який, тим не менш, найкращий у країні): що науковців підштовхують до публікації робіт, чим екзотичніше, тим краще. "Опублікувати чи загинути". Про це повідомляють також вчені з менш відомих нами областей. Вибачте, але в багатьох місцях це сумна і поширена правда.
Андрес Ф.

7

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


1
+1 для посилання! Це повністю втілює мою віру в те, якими повинні бути наука та дослідження.
Андрес Ф.

6

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

Я випустив зовсім небагато коду в «Комп'ютерній графіці», і хоча я думаю, що автори повинні випустити свій код, є багато простих, не теоретичних змов, чому вони цього не роблять . Наприклад

1) Більшість дослідницьких проектів "Комп'ютерна графіка" передбачають співпрацю між декількома дослідниками, часто в різних установах, кожен із яких представляє частину головоломки (тобто алгоритми, бібліотеки тощо). Щоб випустити робочий код, всі дослідники повинні погодитися. Це рідко є простою дискусією, і зазвичай простіше уникнути проблеми.

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

3) Університети часто мають права ІС на код. Отже, потрібно звернутися до "інноваційного бюро", який зробить ваше життя нескінченним важким, бажаючи, щоб ви документували "винахід", щоб вони змогли запатентувати його тощо, перш ніж відкривати його. У деяких випадках університет може навіть відмовити у наданні дозволу на випуск джерела (це різниться між установами і сильно ускладнюється (1))

4) Багато досліджень комп'ютерної графіки проводяться корпораціями. У цьому випадку автори також не володіють кодом, і повинні отримати дозвіл юристів на випуск коду. Адвокати майже не спонукають сказати "так".

5) Немає стимулів публікувати код. Більшість дослідницьких кодів Комп'ютерної графіки ніколи ніхто не використовує. Навіть якщо він є, для коду загального призначення зазвичай ви просто отримуєте підтвердження (нікчемне з точки зору вашого резюме). Якщо вам пощастить, ви отримаєте цитування. Комітети з найму та грантові агенції, як правило, не хвилюються, якщо ви звільнили свій код. Отже, витрачений на підготовку код до випуску витрачається час, який можна було витратити на інший папір. (Є люди, які активно намагаються змінити це в Комп'ютерній графіці).

6) Є стимули не публікувати код. Код може іноді перетворюватися на стартап-компанії, ліцензувати існуючі компанії тощо. Це фінансує майбутні дослідження. Ми всі повинні їсти.


№2 дуже важливий. Не тільки може бути величезна робота над розділенням коду, який стосується паперу, але коли ви це зробите, ви можете виявити це поза контекстом (тобто далеко від 100 інших інструментів, бібліотек та спеціальних налаштувань лабораторія), це по суті нічого не варті і неможливо зрозуміти чи використовувати. Крім того, "дослідницький код" часто дуже крихкий, розроблений досить просто, щоб довести суть одного документу, не створити надійну програмну систему, і дослідник не має часу чи схильності виправити це достатньо, щоб бути чим-небудь, крім сильний головний біль у будь-кого іншого.
Ларрі Гріц

5

Це залежить. Людина, яка пише документ, або їх керівник вирішує, що робити з вихідним кодом. Іноді люди роблять проект відкритим кодом.

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


3

Зазвичай це питання обмежень сторінки. Якщо алгоритм надзвичайно короткий, він часто представлений у статті, принаймні, як псевдокод. З іншого боку, якщо надрукована версія базового коду має навіть декілька сторінок, друк коду не залишить місця для м'яса статті. Стаття журналу, яка становить десять сторінок, - це довга стаття.

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

Найпростіше зробити це запитати авторів, чи можуть вони надати вам вихідний код. Адреси електронної пошти авторів зазвичай перераховані в більшості журнальних журналів.


1
Я думаю, що вихідний код, доступний для рецензування, не вимагає, щоб його повний текст був включений до фактичного документу :) Не тільки через потенціал шахрайства, але я думаю, що рецензентам корисно насправді мати змогу повторно перевірити вас. допустити справжню помилку. Особливо, якщо кодери були вченими, а не програмістами!
Андрес Ф.

3

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

Крім культури в журналах, для вчених код - це лише засіб для досягнення мети. Багато хто не є професійними розробниками програмного забезпечення. Оскільки багато хто розглядає код як просто інструмент для висловлення науки, вони не відчувають необхідності також публікувати код. Крім того, полірування коду до того моменту, коли він може бути опублікований, потребує багато роботи. Вченому платно займатися наукою, а не писати програмне забезпечення.


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

1
Я говорив не про переслідування інформатики, а про загальну науку загалом. У теоретичному КС багато людей працюють над алгоритмами та доказами з математики. Програмне забезпечення - це лише реалізація, думка.
Пол Хіемстра

Якщо ваш код - виноска в статті, я згоден. Якщо це якась перевірка і має власний розділ, який би малий не був, то це є частиною доказу або принаймні валідації. Якщо ви не опублікуєте код, то це явно не актуально, і ви можете також видалити кожну згадку зі свого паперу!
Андрес Ф.

2

Частіше за все, власне програма - це лише інструмент для досягнення цілі, а не продукт сам по собі. Надання повних деталей вихідного коду було б подібним до надання повного малюнка ручки, яка використовується для підписання звіту та / або схем ПК.

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

Якщо вас справді цікавить код, я пропоную коментар @Buttons - найкраща порада: Запитайте їх :)


1

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

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


1

Процитований вами документ складає вже 28 сторінок, а більша частина змісту стосується дизайнерських рішень, пов’язаних із вирішенням проблеми (зазначено у назві).

Код є завершальним кроком для затвердження дизайну. Це не банально, але це не та частина, яка додає значення результатам статті, особливо якщо ви врахували простір, який він би зайняв.

Не кожен випадок однаковий. Деякі документи дають вихідний код або, принаймні, псевдо-код. Деякі редактори цього не дозволяють. Деякі це дозволяють, але через простір автори цього не включають. Один журнал, де я публікував вихідний код, відформатував його як «цифри», а електронна версія містить його як графічні дані, хоча я подав їх як текст.


1

Стимули мають значення і стимули дослідників, як правило, для того, щоб вони могли створювати постійний потік газет, що поступово спираються один на одного. Аспірантам, як правило, потрібні 3-5 опублікованих робіт, які вони можуть перетворити на окремі глави своєї дипломної роботи, щоб закінчити навчання. Молодший викладач повинен створити стільки публікацій, скільки зможе до їх перегляду. З цієї причини більшість наукових робіт справді є паперовими nсеріями. Наприклад, документ, на який ви посилаєтесь, будується на папері тієї ж групи, опублікованої за рік до цього, і обговорює основи, які, ймовірно, охоплюватиме наступний документ.

Опублікування вихідного коду потенційно дозволяє іншому досліднику в іншій групі виготовити папір n+1до того, як оригінальний автор зробить або принаймні створить документ, який охоплює значну частину основи, яку автор розраховував охопити у рамках цього потоку досліджень. Якщо це трапиться, аспірант міг би легко знайти, що він провів ще 6-12 місяців у середній школі, щоб створити достатню кількість результатів досліджень для випускника. Коли настає час перегляду терміну перебування на посаді, викладач може отримати ще одну опубліковану роботу. І те і інше, очевидно, є великими ударами по кар'єрі дослідника. Додайте до того, що академічні програми часто є частиною дослідницьких зусиль декількох людей у ​​дослідницькій групі (безпосередньо чи тому, що вони поділяють певні компоненти), і всередині дослідницької групи існує тиск, щоб не випускати код, який може врештувати когось, ви працюєте щодня.

Часто ви отримуєте подібні види дискусій у галузях, де збирання необроблених даних займає багато часу та сильно поширюється. Наприклад, в астрономії дослідницька група може витратити роки на збір даних, перш ніж у них буде достатньо інформації, щоб опублікувати один документ. Потім вони використовуватимуть ці дані для створення серії робіт. Дослідницькі групи дуже неохоче діляться більшою кількістю наборів даних, ніж абсолютно необхідних, тому що іншим групам стає занадто легко вільно їздити на час, який було вкладено, збираючи дані, щоб отримати користь від фактичного аналізу даних.

Врешті-решт, багато цього коду буде випущено так само, як астрономічні дані з часом будуть випущені. Це часто відбувається, коли автор доходить до кінця цієї серії робіт або коли більшість дослідницьких груп, які працюють над подібними темами, мають подібні двигуни, тому звільнення коду більше не дає новому досліднику конкурентної переваги.

Для науки було б ідеально, якби дані та код були випущені швидше. Але це може завдати шкоди науковому досліднику, і ось чиї стимули мають значення в даному випадку.


"Опублікування вихідного коду потенційно дозволяє іншому досліднику в іншій групі виготовити папір n + 1 до того, як оригінальний автор зробить або принаймні створить папір, що покриває значну частину основи, яку автор розраховував охопити в рамках цього потік досліджень ". Це здається мені не так просто. Більшість людей (у тому числі і я) матимуть труднощі з розумінням того, про який пишуть дослідники коду, без допомоги авторів, не кажучи вже про їх поширення. Чи знаєте ви випадки, коли це насправді сталося?
Faheem Mitha

1

Як хтось, хто робив це (зі студентської сторони) кілька разів у минулому: часто професори, які пишуть статті, навіть самі не бачать вихідний код. Вони змусять своїх учнів записувати код, а потім запитувати остаточний виконуваний файл (або навіть лише підтвердження результату) лише тоді, коли він буде завершений.

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


1

Більшість причин, про які я можу подумати, вже були підняті тут, але я думав, що додам ще дві, що насправді трапилися зі мною:

Журнал не має уявлення, що робити .

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

Журнал, як виявляється, може приймати електронні добавки лише у тому випадку, якщо вони були внесені у файли Word. Спробувавши більшу частину дня отримати скрипт R у такому вигляді, я відмовився і вирішив не включати код як доповнення. Я міг би прийняти його в моєму університеті, але, будучи аспірантом, я знав, що збираюся втратити свій рахунок там через ~ 1 рік - відкритий код не принесе користі, якщо його негайно наздожене лінкрот.

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

Журнал просто не цікавить

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

Як не дивно, якби хто - небудь зробив піти шукати код, тобто (або скоро буде) з відкритим вихідним кодом, але я вже був запущений на краю «Це росте невдоволено технічний» , і я вирішив , що коротко, «зробити рецензент щасливим 'згадка - це все, що я збирався робити.


0

Багато разів реалізація (тобто програмне забезпечення не має значення), але все частіше реалізація НЕ впливає на результати.

У будь-який момент питання має значення ... вихідний код обов'язково повинен бути доступний! Чим більше, що результати залежать від методів впровадження чи обчислення, тим важливішим стає розміщення вихідного коду.


Що стосується того, хто / де буде зберігати вихідний код. В ідеалі журнал, в якому опублікована стаття, буде зберігати весь вихідний код. Однак у багатьох найважливіших журналах не зберігаються статті та вихідний код. ІМО, якщо журнал не має можливості зберігати весь вихідний код, автор несе відповідальність за пошук веб-адреси місця для зберігання вихідного коду.
Тревор Бойд Сміт

0

Я хотів би додати кілька пунктів щодо типу коду, з яким я маю справу як хімік (хімік, який займається аналізом даних):

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

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

  • Код аналізу даних часто адаптований до даних. Без даних не має великого сенсу. (Ви можете стверджувати, що дані повинні бути опубліковані в будь-якому разі, але це питання інше і поза темою тут.)
    У будь-якому випадку в моєму інституті ми архівуємо необроблені дані та код аналізу даних разом з документом. Політика за замовчуванням не є (ще?), Щоб зробити їх загальнодоступними , але вони, безумовно, будуть доступні за запитом.

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

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


Ця відповідь є з точки зору аналізу даних, тому є певною нішею. Однак це питання пов'язане з academia.SX, тому некомп'ютерні науковці можуть підійти до читання цього.
cbeleites
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.