Я много наслышан о том, что "научный" код запускается обычно один раз. Делается это только ради результата, и когда результат получен, код больше не нужен. В таком случае, конечно, ни контроль версий, ни облака не нужны. Но вот что мне всегда интересно было - неужели в науке все программы настолько уникальны, что переиспользуемых кусков кода не бывает? Или не стоит выделки?
Нет, конечно. Более того, именно научный код часто является очень долгоживущим.
Сравнительно редкое использование всех этих технологий скорее обусловлено целым комплексом причин. А именно:
1) "Идееемкость" научного кода зачастую больше, чем у прикладного. В итоге проекты с большим числом строк встречаются сравнительно редко и проблема управления объемными исходниками не настолько острая, как в прикладном ПО.
2) По той же причине количество активных разработчиков в каждый конкретный момент невелико, они могут координировать свои действия более традиционными способами.
3) Научный код действительно используется очень долго (до нескольких десятков лет), поэтому применять конкретные технологии со сроком жизни 5-6 лет не всегда рационально.
4) "Научные программисты" почти всегда являются специалистами не в разработке ПО, а в чем-то другом, и в среднем попросту старше, чем программисты в целом. В итоге сообщество оказывается достаточно консервативным.