Можно ли рецензировать и публиковать программное обеспечение с открытым исходным кодом?

Мы с коллегой разработали программный инструмент и намерены выпустить его с открытым исходным кодом.

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

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

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

Если вы считаете, что это будет полезно, как насчет того, чтобы потратить некоторое время на приложения? На самом деле это не исследование, а скорее «вот список из 5 проблем из литературы последних десятилетий, где мы применили наш инструмент, и он был лучше, потому что ...».
Вас может заинтересовать Журнал программного обеспечения с открытым исходным кодом: joss.theoj.org
См. список возможных площадок здесь: scicomp.stackexchange.com/q/660/30021 .
Вы также можете взглянуть на это: journals.elsevier.com/software-impacts
@Dirk В данном случае это сложно, так как это инструмент, позволяющий сделать что-то другое для новой, но популярной экспериментальной техники. Мы планируем публиковать данные отдельно и цитировать наше программное обеспечение. Мы думаем, что другим это тоже может пригодиться. Я не могу обсуждать более подробную информацию о неопубликованной работе без согласия моих соавторов.
Тот же пост на биоинформатике bioinformatics.stackexchange.com/q/11313/131

Ответы (5)

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

Существуют общие журналы, посвященные процессу разработки программного обеспечения . Идея состоит в том, чтобы поощрять более качественную разработку программного обеспечения, получая признание, которого она заслуживает. Примерами журналов с таким подходом являются Journal of Open Research Software и Journal of Open Source Software .

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

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

(Подчеркните меня, чтобы сослаться на точку в исходном вопросе)

Хороший ответ. Не стесняйтесь копировать список журналов моего ответа, если вы хотите расширить свой ответ.

Да. Программное обеспечение может быть опубликовано как инструмент с открытым исходным кодом с процессом рецензирования. Существует несколько академических журналов в традиционном стиле. Учитывая профиль ОП , вот несколько журналов, в которых публикуются пакеты R, инструменты для генетики или экологическое программное обеспечение:

Кроме того, некоторые правительственные агентства имеют формальные процессы рецензирования программного обеспечения и кода для публичного выпуска (например, Геологическая служба США , Министерство энергетики США ).

Я пришел к этому посту специально, чтобы упомянуть Journal of Statistical Software.
@MichaelLugo Я слышал об этом хорошие отзывы, но раньше мне отказывали в работе за то, что я выходил за рамки JSS из-за другой работы. Я не могу обсуждать детали неопубликованной работы, но этот инструмент не является статистическим по своей природе, поэтому не подходит для этого.

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

Вот пример , а вот ссылка Github на исходный код.

Программное обеспечениеX :

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

С этой целью SoftwareX стремится поддерживать публикацию исследовательского программного обеспечения таким образом, чтобы:

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

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

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

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

Главное заключается в том, что классическая компьютерная наука и смежные области (например, математическое программное обеспечение) очень долго были сосредоточены на методах . Дело не в том, почему, не в том, как технически, а в теоретическом способе решения проблемы. Это не значит, что нет реализации, поддерживающей теорию. В подавляющем большинстве случаев он есть. Но публикация кода, особенно как отдельного объекта, является относительно новой (но долгожданной!) разработкой.

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

Языки умирают, а идеи нет.

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

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

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


Обратите внимание, что ваши коллеги-биологи, геологи, химики и т. д. вполне могут оценить рабочий продукт. «Клонируйте этот репозиторий github и подключите свои данные» работает как шарм.

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

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

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