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