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

69

Есть ли причина, по которой исходный код программного обеспечения, упомянутый в научных статьях, не выпущен? Я понимаю, что исследовательские работы больше касаются общей идеи достижения чего-либо, чем деталей реализации, но я не понимаю, почему они не выпускают код.

Например, этот документ заканчивается:

Результаты

Система рисования человеческих линий реализована через платформу Qt в C ++ с использованием OpenGL и работает на двухъядерной рабочей станции Intel с тактовой частотой 2,00 ГГц без какой-либо дополнительной аппаратной помощи. Мы можем интерактивно рисовать линии, пока система синтезирует новый путь и текстуру.

Держат ли они исходный код намеренно закрытым из-за монетизации, которую они намерены сделать с его помощью, или из-за авторских прав?

Антуан
источник
42
По той же причине в большинстве работ отсутствуют исходные данные (публикуются только статистически искаженные «результаты»).
SK-logic
2
Я редактировал вопрос. Возможно, «упоминание» не лучшее слово. В некоторых случаях некоторые замечания, изложенные в статьях, критически зависят от программного обеспечения, но программное обеспечение является программным обеспечением. Например, чтобы правильно оценить достоверность документа, кто-то должен иметь возможность запускать программное обеспечение.
Каз
7
@JohnL Я бы сказал, что статья может критически зависеть от программного обеспечения, а не о программном обеспечении. Как интересное свойство мира, которое демонстрируется / обнаруживается с помощью программного инструмента. Если мы не можем рассмотреть инструмент, как мы можем знать, что заключение является правильным? (Или, скорее: это гораздо проще проверить, если мы увидим инструмент!)
Андрес Ф.
4
@Andres F - Одна из возможностей - реализовать собственную версию программного обеспечения, используя идеи, описанные в статье. Хотя это и больше работы, но и, возможно, имеет большую ценность - повторное выполнение одной и той же реализации только снова демонстрирует одну реализацию. Новая реализация помогает продемонстрировать, что сами идеи являются действительными, а не случайностью некоторых деталей реализации. Во время повторной реализации могут быть обнаружены существенные проблемы, которые, возможно, не были замечены или описаны ранее.
Steve314
3
@KonradRudolph, конечно, это не всегда будет доступно. Это может даже стать недоступным через пару лет с момента публикации (ленты были стерты и использованы повторно, вся группа распущена, бумага уничтожена и т. Д.)
SK-logic

Ответы:

71

На ум приходит несколько причин.

  • Код слишком велик для статьи. В течение короткого периода времени интересные проекты были достаточно короткими, чтобы их можно было опубликовать в статье, в которой они были описаны. Это все еще может случиться, но многие проекты достаточно большого размера, чтобы быть интересными, стали слишком большими, чтобы быть опубликованными с работами, которые их описывают.
  • Публичные хосты не бесплатны и не долговечны. До недавнего времени дешевые, долговечные, легкодоступные общедоступные хосты были недоступны.
  • Опубликовать статью проще, чем опубликовать проект. Некоторые люди успевают опубликовать статью или проект, но не оба сразу.
  • Стимулы привязаны к роли. Много лет назад я спросил коллегу о разработке продукта и патентах и ​​получил слово, что большинство людей там, в значительной степени, делали одно или другое. Как и в случае с авторами статей (думаю, академическими кругами) и разработчиками с открытым исходным кодом, вознаграждения направлены на один рабочий продукт или другой.
  • Самостоятельная мотивация. Желание описать идеи или реализовать код не всегда присутствует в равных частях у одного и того же человека. Многие из моих профессоров открыто признавали, что они либо никогда не кодировали слишком много, либо были на расстоянии многих лет от того, чтобы кодировать свободно. Точно так же многие разработчики едва ли хотят писать комментарии в своем коде или когда они переходят на контроль версий.
  • Долговечность хостинга проекта и рабочего продукта также является проблемой. Кто хочет связать что-то, что могло бы исчезнуть через несколько лет и, как следствие, снизить ценность статьи.
  • Традиция. Издатели ориентированы на рецензирование и публикацию статей, но, возможно, не готовы принять такую ​​же оценку для проектов.
    Также традиционные взгляды на разумный уровень воспроизводимости варьируются в зависимости от области. Ожидается, что химик, публикующий статью о новом методе синтеза, запишет достаточно подробностей, чтобы другой химик мог выполнить синтез. От нее не ожидают, что она отправит документы и материалы в журнал. Предполагается, что читатели, которые хотят использовать / воспроизводить документ, приобретут свои собственные учебные материалы и сами сделают синтез в своей лаборатории (хотя они могут попросить прийти и посетить лабораторию, чтобы посмотреть, как это делается на практике). Не следует ожидать, что биолог прикрепит своих новых трансгенных мышей к бумаге. Это представление о воспроизводимости соответствует, например, предоставлению (псевдокодового) описания алгоритма, а не фактической реализации.
  • Голый код может быть шокирующим . Требуется намного меньше полировки, чтобы вычитать документ в бумажном формате, чем проверять код, проверять код и обеспечивать качество проекта. У меня много кода, о котором мне будет удобнее рассказывать, чем показывать. Надеемся, что все движется вперед к точке, где мы все напишем красивый код, но если ваш код был перенесен, почти или не работает полностью, вам может быть удобнее не делиться исполняемыми файлами или исходным кодом.
  • Закрытый источник. Не все приняли открытый исходный код. Многие статьи написаны о работе для DoD, коммерческих проектов или проектов, финансируемых из частных источников, где есть выгоды от раскрытия проекта общественности, но все еще есть коммерческие секреты или первые рыночные преимущества, которые могут быть подорваны открытым исходным кодом или другие рабочие продукты.
  • Опубликуйте дальнейшую работу на основе этого кода. Если код не опубликован, он может дать автору преимущество в публикации последующих работ. Другим конкурирующим исследователям может понадобиться переопределить работу, которая может занять драгоценное время.
DeveloperDon
источник
27
Если статья зависит от исходного кода, то она не должна быть опубликована. Если вы не можете опубликовать код, вы не можете опубликовать статью. Документ, в котором говорится, что «наша программа делает эти замечательные вещи», и вы не сможете оценить документ, не запустив эту программу, тогда этот документ ограничивается рекламной брошюрой для некоторого программного обеспечения.
Каз
3
В полном согласии с Kaz - если для рецензирования исследования вам нужно что-то, чего нет (данные, код и т. Д.), Оно не должно приниматься рецензируемым журналом. Почти все аргументы, на которые ссылается DeveloperDon, верны и для публикации данных ... однако в последние годы наблюдается довольно большой прогресс в этом направлении.
Джо
3
БОЛЬШОЙ пост. Я также добавил бы, что иногда отдельные ученые, воссоздающие программное обеспечение самостоятельно, являются ЧАСТЬОМ повторяемости эксперимента. Если это работает только так, как это сделал один человек, а не так, как это делают другие ... тогда результаты могут быть поставлены под сомнение, а ошибки могут быть выявлены.
Джимбо Джонни
4
ваш второй по последнему пункту самый сильный
l -'''''--------- '' '' '' '' '' ''
4
@AndresF. Код абсолютно наименее важная вещь в газете. Статья «Вот что я сделал; вот мои методы; вот мои результаты». Код является кодификацией метода, и он должен давать точно такие же результаты. Если вы хотите воспроизвести результаты статьи, но используете ее код, вы ничего не воспроизвели; то, что вы должны сделать, это прочитать их раздел методов, придумать свою собственную реализацию, а затем написать статью об этом, когда вы не можете воспроизвести их результаты.
Такрой
40

Прочитайте презентацию Рэндалла ЛеВека «10 основных причин, по которым не следует делиться вашим кодом (и почему вы все равно должны это делать)» http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

Он убедительно утверждает, что код аналогичен доказательствам в математике, и предлагает нам рассмотреть мир, в котором доказательства не публикуются, потому что они слишком длинные, или слишком некрасивые, или не работают в крайних случаях, или могут стоить деньги, или кто-то может украсть их ...

По сути, если вы занимаетесь наукой, вы должны опубликовать свой код. В противном случае вы занимаетесь алхимией, и вы можете улететь прямо в темные века и умереть от чумы, насколько мне известно.

Spacedman
источник
7
+1 Отличная презентация. Я рад, что есть люди, которые стремятся к переменам :)
Андрес Ф.
+1 Спасибо за ссылку; это может помочь мне в моих текущих переговорах с моим боссом о выпуске некоторого нашего кода как Open Source.
Фрэнк
Слово вверх! Хорошая аналогия заслуживает голосования от меня.
Нульпотент
Я не уверен, что это сравнение действительно хорошо для этой цели. Я химик (который предпочел бы увидеть гораздо больше опубликованного кода), не математик, но доказательства, которые я видел, обычно дают не каждый маленький шаг. Так что ИМХО они скорее соответствуют сжатому псевдокодовому описанию алгоритма, чем реальному исходному коду.
cbeleites
27

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

Но результаты должны быть воспроизводимыми. И затем, когда источники данных, на которых основывается статья, являются общедоступными, программы, преобразовывающие их в результаты, как правило, также требуются. Они часто размещаются «где-то» в Интернете, если это не вызывает проблем с патентами и авторскими правами. Или, по крайней мере, авторы должны отправить вам программы, если вы их попросите.

mgoeminne
источник
2
Я не думаю, что вы должны отправить кого-нибудь, кто спрашивает у вас ваш драгоценный код ... ИМХО Этот ответ неверный. Но я хотел бы увидеть мир исследований, где информация бесплатна ...
Дирк
3
@Dirk Насколько я знаю, это относительно распространено в эмпирических исследованиях программного обеспечения. В последнем (пока не принятом) представлении моей команды в этом домене один из рецензентов прямо попросил предоставить открытый доступ к нашим данным, а также к некоторым фрагментам кода. Я не понимаю, почему код должен быть таким ценным. Это (в общем) просто реализация идей, описанных в статье. Публикация программ - это способ дать читателю возможность проверить, правильно ли мы воплощаем наши идеи в действия.
mgoeminne
1
Хм, так что вы знаете (а) кто ваш рецензент и (б) передать ваш код и данные кому-то, кто может быть в прямой конкуренции с вами?
Дирк
1
Не совсем потому, что (а) рецензенты просят опубликовать код в месте, к которому они имеют доступ анонимно (или аутентификация выполняется журналом) (б) Поскольку ваша статья опубликована, другие исследователи могут откровенно использовать ту же методологию / инструменты скопировать ваше исследование на другой набор данных или даже на тот же набор данных. Репликации менее престижны, чем оригинальная статья, они будут ссылаться на вашу работу, и они предлагают сильную проверку вашей бумаги. Поэтому авторы оригинала рады, что другие делают всю эту работу за них.
mgoeminne
@Paul Я не вижу связи с публикацией исходного кода. В любом случае, хорошие редакторы обращают внимание на заметки, которые пишут рецензенты, чтобы обосновать свои решения. Поэтому упоминания типа «Это чушь собачья» не принимаются во внимание. Если редактор считает, что рекомендации рецензентов недостаточно актуальны, он запрашивает мнение другого эксперта. Аспиранты не участвуют в процессе рецензирования. И если вы не можете позволить, чтобы ваш документ был принят после нескольких лет представления, вы должны предусмотреть, что этот документ (или его содержание) не так хорош.
mgoeminne
14

Это не закрытый источник. Программное обеспечение просто не было опубликовано вообще.

Краткий ответ:

Есть несколько причин не публиковать программное обеспечение, но редко публикуется программное обеспечение с закрытым исходным кодом.

Длинный ответ:

Закрытый источник означает, что программное обеспечение было опубликовано, а исходный код - нет. Но распространенным случаем является то, что ни программное обеспечение, ни исходный код не были опубликованы .

По моему опыту (я работаю в области атмосферных наук), авторы очень рады, если вы связываетесь с ними и спрашиваете, можете ли вы получить их программное обеспечение (включая, конечно, исходный код) для проведения исследований. Если я собираюсь написать статью с проектом, основанным на их проекте, они, по крайней мере, получат цитату из этого (хорошо!), Но, вероятно, получат статью в соавторстве (потому что, конечно, они не не документировать свое программное обеспечение, чтобы кто-то мог использовать его без их помощи). Относительно дешевая статья соавтора, так что это даже лучше .

Настоящий вопрос:

Почему они не публикуют программное обеспечение?

На это есть несколько причин:

  • Опубликованное программное обеспечение нуждается в документации. Обычно люди не любят писать документацию.
  • Опубликованное программное обеспечение может привлечь пользователей. У пользователей могут быть вопросы. Это требует времени (но см. Выше).
  • Опубликованное программное обеспечение может потребовать нетривиального обслуживания.
  • Публикация программного обеспечения требует хостинга.

Список можно сделать длиннее. Это заслуживает отдельного вопроса, в Academia.SE, а не здесь.

(Обратите внимание, что в моей группе мы публикуем наше программное обеспечение - под лицензией GPL )

Геррит
источник
Также возможно опубликовать код, но под лицензией, которая не допускает изменения.
asmeurer
Я даже не думал об этой ситуации, когда авторы будут публиковать только скомпилированную версию, чтобы доказать, что программное обеспечение действительно существует, потому что оно не помогает понять, как они это сделали - как я понимаю детали реализации ... Я люблю читать исходники код!
alecail
8

Это может показаться циничным, но по моему опыту исследовательские работы написаны не так, чтобы их было легко понять или просто воспроизвести. Вместо этого в исследовательском сообществе более важно иметь статью, которая звучит и выглядит очень научной. По этой причине большинство авторов преобразуют свой код в математические формулы и пытаются доказать, что их алгоритм математически корректен. Обычно количество страниц для такой статьи ограничено, поэтому нет места для публикации кода. Тем не менее, конечно, это не будет ограничивать любого автора ссылаться на полный код с URL ...

Можно предположить, что если код не публикуется, либо авторы хотят измерить свои выводы, либо (что я лично считаю более частым случаем), они боятся, что люди увидят, что их исследование не так круто, как они утверждают. Часто результаты относятся только к очень ограниченному числу случаев.

Кроме того, я видел, что из одной простой программы / алгоритма выделяются несколько научных работ. Если код будет опубликован, было бы сложно написать какие-либо дополнительные статьи на ту же тему. Таким образом, знание сдерживается, чтобы со временем публиковать его небольшими кусочками.

Всегда имейте в виду, что в университетах важны не столько результаты или применимость исследований, сколько количество публикаций, которые вы публикуете. Это грустно, но это правда.

codingFriend1
источник
13
При этом попробуйте спросить исследователей! Иногда они будут предоставлять вам исходный код.
Люцина
3
Я не думаю, что вы здесь полностью справедливы: «Вместо этого, в исследовательском сообществе более важно иметь статью, которая звучит и выглядит очень научной». Это подразумевает, что нет никакого значения для основного контента, почти потому что вы не можете понять это, потому что это выглядит научным. Количество статей, которые вы публикуете, практически не имеет значения, если никто не заинтересован в содержании. Этот ответ, на мой взгляд, говорит о ваших предрассудках, а не реальности.
Temptar
2
@temptar Ну, может быть, я немного негативно настроен. Что меня больше всего поразило, так это то, что большинство исследователей явно не хотят описывать свои исследования так, чтобы их было легко понять. Однажды у меня был профессор, который, объяснив мне алгоритм, добавил: «Но в статье мы напишем это более сложно, чтобы сделать его более научным».
codingFriend1
6
@ codingFriend1 - вы не можете и не должны обобщать на основе одного опыта. Это глубоко ненаучный подход. Вы должны подумать, кто является целевой аудиторией для специалиста-исследователя, и во многих случаях это не люди, которые нуждаются в объяснениях, которые вы считаете необходимыми. Это то, для чего у нас есть научные связи - для связи с неспециалистами.
Temptar
3
Я поддерживаю ответ codingFriend1. Это была общая критика, направленная против научного сообщества, в котором я живу, и особенно в моем университете (который, тем не менее, является лучшим в стране): что ученые вынуждены публиковать статьи, чем экзотичнее, тем лучше. «Публикуй или погибни». Ученые из областей, с которыми я менее знаком, также сообщают об этом. Извините, но во многих местах это печальная и распространенная правда.
Андрес Ф.
7

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

hulkmeister
источник
1
+1 за ссылку! Это полностью воплощает мою веру в то, какой должна быть наука и исследования.
Андрес Ф.
6

Приведенные выше ответы не учитывают несколько практических причин, которые часто возникают в компьютерной графике (область, в которой упомянутая автором статья была опубликована). Выпуск кода сильно варьируется между полями в CS - например, в машинном обучении код обычно публикуется. В Human Computer Interaction код почти никогда не публикуется.

Я выпустил довольно много кода в компьютерной графике, и хотя я думаю, что авторы должны выпускать свой код, есть много простых причин, не основанных на теории заговора, почему они этого не делают . Например

1) Большинство исследовательских проектов в области компьютерной графики предполагают сотрудничество между несколькими исследователями, часто в разных учреждениях, каждый из которых обеспечивает определенную часть головоломки (например, алгоритмы, библиотеки и т. Д.). Чтобы выпустить рабочий код, все исследователи должны согласиться. Это редко простая дискуссия, и обычно легче избежать проблемы.

2) Часто код для одного документа встраивается в большую кодовую базу, разрабатываемую в лаборатории. Эта кодовая база будет содержать другую неопубликованную работу. Выделение кода для отдельного проекта - большая работа, часто без немедленной выгоды для людей, которые должны выполнять эту работу (см. Стимул ниже).

3) Университеты часто имеют права ИС на код. Следовательно, необходимо связаться с «офисом инноваций», который сделает вашу жизнь бесконечно сложной, попросив вас документировать «изобретение», чтобы они могли запатентовать его и т. Д., Прежде чем вы откроете его. В некоторых случаях университет может даже отказать в разрешении на публикацию источника (это варьируется в зависимости от учреждения и сильно осложняется (1))

4) Многие исследования компьютерной графики проводятся корпорациями. В этом случае авторы также не владеют кодом и должны получить разрешение от юристов, чтобы опубликовать код. Адвокаты практически не имеют стимула сказать «да».

5) Нет стимула публиковать код. Большая часть кода исследований компьютерной графики никогда не используется кем-либо еще. Даже если это так, для кода общего назначения вы обычно просто получаете подтверждение (бесполезное с точки зрения вашего резюме). Если вам повезет, вы получите цитату. Комитеты по найму и агентства грантов, как правило, не заботятся о том, выпустили ли вы свой код. Таким образом, время, потраченное на подготовку кода к выпуску, - это потраченное время, которое можно было бы потратить на другой документ. (Есть люди, которые активно пытаются изменить это в компьютерной графике).

6) Есть стимулы не публиковать код. Код может иногда превращаться в стартап-компании, получать лицензии для существующих компаний и т. Д. Это финансирует будущие исследования. Мы все должны есть.

Райан Шмидт
источник
№ 2 очень важен. Мало того, что это может быть огромным трудом для разделения кода, который имеет отношение к бумаге, но когда вы это сделаете, вы можете обнаружить это вне контекста (то есть, от 100 других инструментов, библиотек и пользовательских настроек лаборатории), это по сути бесполезно и невозможно понять или использовать. Кроме того, «исследовательский код» часто бывает очень хрупким, его достаточно спроектировать, чтобы доказать смысл одной статьи, а не создать надежную программную систему, а у исследователя нет времени или желания исправить его настолько, чтобы он стал чем-то иным, чем сильная головная боль для всех остальных.
Ларри Гриц
5

По-разному. Человек, пишущий статью, или его руководитель решает, что делать с исходным кодом. Иногда люди делают проект открытым исходным кодом.

Иногда проекты обычно финансируются компаниями, то есть это их собственность. В этих случаях автору статьи не разрешается показывать код.

BЈовић
источник
3

Обычно это вопрос ограничений страницы. Если алгоритм чрезвычайно короткий, он часто представляется, по крайней мере, в виде псевдокода, в статье. С другой стороны, если печатная версия базового кода занимает всего несколько страниц, печать кода не оставит места для сути статьи. Журнальная статья длиной в десять страниц - это длинная статья.

Недоступность источника создает потенциал для мошенничества. Из-за этого потенциала многие журналы в настоящее время требуют, чтобы авторы представили свой исходный код в качестве дополнительной информации (которую можно получить из журнала, если у вас есть доступ; может потребоваться внушительная плата за подписку). Некоторые другие журналы требуют, чтобы авторы передавали свой исходный код любому, кто просит об этом. Все же другие журналы все еще находятся в темных веках; исходный код не требуется для отправки, и авторы не обязаны выпускать его.

Проще всего спросить авторов, могут ли они предоставить вам исходный код. Адреса электронной почты авторов обычно указываются в большинстве журнальных статей в настоящее время.

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

Мой опыт как ученого (опубликовано 5 работ) заключается в том, что зачастую журнал не требует публикации кода, который использовался для создания результатов. Это не значит, что журналы не принимают сценарии. Многие журналы позволяют размещать онлайн дополнительные материалы. Некоторые журналы, ориентированные на алгоритмы и тому подобное (например, Компьютеры и Науки о Земле), требуют, чтобы вы добавили источник алгоритма, но это скорее исключение, чем правило.

В дополнение к культуре в журналах, для ученых код является лишь средством для достижения цели. Многие не являются профессиональными разработчиками программного обеспечения. Поскольку многие рассматривают код как инструмент для выражения науки, они не чувствуют необходимости издавать код. Кроме того, полировка вашего кода до такой степени, что он может быть опубликован, требует много работы. Ученому платят за то, что он занимается наукой, а не пишет программное обеспечение.

Пол Химстра
источник
Но программное обеспечение, в некотором смысле, доказательство. Вот что такое компьютерная наука: программы - это доказательства. Я думаю, что это либо случай недостаточной уверенности в результатах, либо культурное недоразумение о важности фактического предоставления рабочего доказательства вашего исследования.
Андрес Ф.
1
Я говорил не о компьютерной науке как таковой, а о науке в целом. В теоретической CS многие люди работают над алгоритмами и доказательствами в математической сфере. Программное обеспечение - это просто реализация, запоздалая мысль.
Пол Химстра
Если ваш код является сноской в ​​статье, я согласен. Если это какая-то проверка и имеет собственный раздел, пусть и небольшой, то это часть доказательства или, по крайней мере, проверки. Если вы не будете публиковать код, то он явно не актуален, и вы можете также удалить все упоминания из вашей статьи!
Андрес Ф.
2

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

Сказав, что, особенно там, где предлагается экспертная оценка, исходный код будет доступен - хотя и в соответствии с какой-либо формой Соглашения о неразглашении (NDA) - так как в программе заложена интеллектуальная собственность.

Если вы действительно заинтересованы в коде, я предлагаю комментарий @Buttons - лучший совет: спросите их :)

Андрей
источник
1

Многое зависит от цели, для которой был написан код. Если это должно было продемонстрировать точку зрения, вполне может быть, что она не оптимизирована и, следовательно, не идеальна, чтобы ее выпустить. Если базовые концепции и методология верны, тогда должна быть возможность воссоздать результат кода с нуля. Также могут быть проблемы с авторским правом и правами собственности.

В принципе, технически невозможно выпустить код, но причины, по которым он не может быть выпущен, различны. По этой причине, вероятно, нет простого ответа на этот вопрос. В конкретных случаях, возможно, вы могли бы спросить заинтересованных исследователей.

temptar
источник
1

Цитируемая вами статья уже содержит 28 страниц, и большая часть контента посвящена проектным решениям, связанным с решением проблемы (указано в заголовке).

Код является последним шагом для проверки дизайна. Это не тривиально, но это не та часть, которая повышает ценность результатов статьи, особенно если вы рассматриваете пространство, которое она займет.

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

оборота фурманатор
источник
1

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

Публикация исходного кода потенциально позволяет другому исследователю из другой группы производить бумагу n+1до того, как первоначальный автор сделал или, по крайней мере, подготовил статью, охватывающую значительную часть той основы, которую автор ожидал охватить в рамках этого исследовательского потока. Если это произойдет, аспирант может легко найти себя, проводящего еще 6-12 месяцев в аспирантуре, чтобы получить достаточно результатов исследований, чтобы получить высшее образование. У преподавателя может оказаться меньше опубликованных работ, когда придет время пересмотра. Оба эти, очевидно, большие удары по карьере исследователя. Добавьте к этому тот факт, что академические приложения часто являются частью исследовательских усилий множества людей в исследовательской группе (либо напрямую, либо потому, что они совместно используют определенные компоненты), и исследовательская группа испытывает давление, чтобы не выпускать код, который может повредить кому-то, кто Вы работаете с каждым днем.

Вы часто получаете подобные обсуждения в тех областях, где сбор необработанных данных занимает много времени и сильно распределен. Например, в астрономии исследовательская группа может потратить годы на сбор данных, прежде чем у них будет достаточно информации для публикации одной статьи. Но затем они будут использовать эти данные для подготовки серии статей. Исследовательские группы очень неохотно делятся большим количеством своих наборов данных, чем это абсолютно необходимо, потому что другим группам становится слишком легко свободно тратить время, потраченное на сбор данных, чтобы пожинать плоды фактического анализа данных.

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

Для науки было бы идеально, если бы данные и код были выпущены быстрее. Но это часто наносит вред научному исследователю, и именно в этом случае стимулы имеют значение.

Джастин Кейв
источник
«Публикация исходного кода потенциально позволяет другому исследователю в другой группе производить бумагу n + 1 до того, как это делает первоначальный автор, или, по крайней мере, производить бумагу, которая охватывает значительную часть того, что автор ожидал охватить как часть этого». исследовательский поток ". Это звучит не так просто для меня. Большинству людей (включая меня) было бы трудно понять, какой код пишут исследователи, без помощи авторов, не говоря уже о расширении. Знаете ли вы случаи, когда это действительно произошло?
Фахим Митха
1

Как кто-то, кто делал это (на стороне студента) несколько раз в прошлом: часто профессора, пишущие статью, даже сами не видят исходный код. Они попросят своих аспирантов написать код, а затем попросят окончательный исполняемый файл (или даже просто подтверждение результата), когда он будет завершен.

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

оборота BlueRaja - Дэнни Пфлугхофт
источник
1

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

Журнал не знает, что делать .

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

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

Я закончил тем, что разместил его на GitHub и поместил ссылку на это в газете, но это было потому, что я действительно хотел, чтобы код вошел. Я вижу, тем более, что большинство людей в моей области не используют что-то вроде GitHub, просто решив, что усилия не будут стоить горстке людей, которые загрузят их, и которые в любом случае могут написать мне по электронной почте, если они действительно захотят.

Журнал просто не интересует

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

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

фомиты
источник
0

Много раз реализация (то есть программное обеспечение не имеет значения), но все чаще реализация оказывает влияние на результаты.

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

Тревор Бойд Смит
источник
Относительно того, кто / где будет хранить исходный код. В идеале журнал, в котором опубликована статья, будет хранить весь исходный код. Однако многие из наиболее важных журналов не хранят ни статью, ни исходный код. IMO, если журнал не имеет возможности хранить весь исходный код, автор несет ответственность за поиск адресного места хранения в Интернете для исходного кода.
Тревор Бойд Смит
0

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

  • Людей, которые пишут код для анализа данных (как и я), сравнительно немного по сравнению с людьми, которые используют этот код. «Пользовательский код, написанный на дому», не означает, что авторы его написали - это может быть код коллеги, поэтому авторы не могут его опубликовать.

  • Может быть запланирована отдельная публикация кода, и автор кода (или руководитель) может быть обеспокоен тем, что новизна будет потеряна, если код (частично) был обнародован ранее.
    Даже если журнал, для которого предназначена публикация кода, не возражает против того, чтобы код был общедоступным ранее, одной лишь заботы надзорного органа (или кого-либо из ведомства ИС) может быть достаточно для прекращения публикации кода.

  • Код анализа данных часто адаптируется к данным. Это не имеет большого смысла без данных. (Вы можете утверждать, что данные должны быть опубликованы в любом случае, но это другой вопрос и не по теме здесь.)
    В любом случае, в моем институте мы архивируем необработанные данные и код анализа данных вместе с бумагой. Политика по умолчанию не (пока?), Чтобы сделать их общедоступными , но они, безусловно, будут доступны по запросу.

  • (Традиционный взгляд на то, что является воспроизводимостью в химии, скорее соответствует описанию (возможно, псевдокоду) алгоритма, чем отправке фактического исходного кода)

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

cbeleites
источник
Этот ответ с точки зрения анализа данных, так что это скорее конкретная ниша. Тем не менее, этот вопрос связан с Academia.SX, так что не-компьютерщики могут читать это.
cbeleites