Фон
В прошлом году я прошел стажировку в исследовательской группе по физике в университете. В этой группе мы в основном использовали LabVIEW для написания программ для управления нашими установками, сбора данных и анализа наших данных. Для первых двух целей это работает вполне нормально, но для анализа данных это настоящая боль. Кроме того, каждый был в основном самоучкой, поэтому код, который был написан, был в целом довольно беспорядочным (неудивительно, что каждый кандидат быстро решил переписать все с нуля). Контроль версий был неизвестен, и его невозможно настроить из-за строгих программных и сетевых правил от ИТ-отдела.
Теперь все на самом деле получилось на удивление хорошо, но как люди в естественных науках делают свою разработку программного обеспечения?
Вопросы
Некоторые конкретные вопросы:
- Какие языки/среды вы использовали для разработки научного программного обеспечения, особенно для анализа данных? Какие библиотеки? (например, что вы используете для построения графика?)
- Была ли какая-либо подготовка для людей без каких-либо существенных предпосылок программирования?
- У вас есть что-то вроде контроля версий и отслеживания ошибок?
- Как бы вы пытались создать достойную среду для программирования, не слишком сильно мешая отдельным ученым (особенно физики - упрямые люди!).
Резюме ответов пока
Ответы (или моя интерпретация их) до сих пор: (2008-10-11)
- Языки/пакеты, которые, как представляется, наиболее широко используются:
- Контроль версий используется почти всеми респондентами; отслеживание ошибок и другие процессы гораздо реже.
- Курс "Плотницкие программы" - это хороший способ научить программистов и методов разработки ученым.
- Как улучшить ситуацию?
- Не заставляйте людей следовать строгим протоколам.
- Создайте среду самостоятельно и покажите преимущества другим. Помогите им начать работу с контролем версий, отслеживанием ошибок и т.д. Сами.
- Обзор кода других людей может помочь, но имейте в виду, что не все могут это оценить.