Я делаю предварительную работу по исследованию того, как DVCS (например, Git, Hg, Bazar) может помочь в процессе научного программирования, особенно для аспирантов. Я думаю, что у меня неплохая позиция для этого, так как я программирую уже несколько лет и в настоящее время начинаю программу Masters в области естественных наук. Цель состоит в том, чтобы провести короткую презентацию об этом через месяц или два.
Насколько я понимаю, помимо очевидного преимущества управления версиями, DVCS в настоящее время предоставляет следующие улучшения для повседневной жизни студента:
-
Ветвление:
Это большой. Из наблюдений за практикой DVCS ясно, что дешевое разветвление в основном стимулирует экспериментирование новых функций. Научное программирование - это ВСЕ о экспериментах. Для настройки параметров или алгоритмов могут быть созданы различные ветки. Это особенно важно, потому что большинство научных кодов не видели ни одной реферирующей системы на протяжении всей их жизни (большинство студентов-градоначальников даже не знают, что это такое), поэтому способность идти в разные отрасли приведет к некоторому методу типичного безумия. Быстрые коммиты также могут означать использование коммитов в качестве суррогата для лабораторных ноутбуков. Вычислительные результаты могут быть помечены специальными хэш-кодами фиксации для воспроизводимых исследований.
-
Нажатие на серверы:
Так как большинство научных кодов в настоящее время запускаются на каком-то кластере, DVCS можно использовать как своего рода более продвинутый Rsync, который многие уже используют, чтобы подтолкнуть "производственный" код к кластерам HPC. Это сочетается с ветвлением, чтобы легко запускать несколько версий кода, не выходя из
-
Сотрудничество с документами:
Мне нужно больше сказать? Бумаги с несколькими авторами работают точно так же, как небольшие проекты с открытым исходным кодом. Сотрудничество с документами должно быть естественным подходом, когда авторы все пишут в LaTex, с дополнительными осложнениями, если запись выполняется в чем-то вроде Word. Здесь комментарии комментирования могут играть большую роль.
Мой вопрос: что, по вашему мнению, может сделать DVCS для научных программистов? Я вижу много разговоров о переходе на контроль источника в сообществе, но большинство из них все еще смотрит в Subversion. Из моих беглых заметок это звучит так, как DVCS должна быть идеальной парадигмой рабочего процесса для новых студентов градиента. Я ошибаюсь? Или научное кодирование просто слишком сильно отстает, чтобы даже слышать о инструментах DVCS?
по теме: