Передумови
Торік я проходив стажування в групі фізичних дослідників в університеті. У цій групі ми в основному використовували LabVIEW для написання програм для управління нашими настройками, збору даних та аналізу наших даних. Для перших двох цілей це цілком нормально, але для аналізу даних це справжній біль. Крім того, усі в основному були самоучками, тому написаний код був загалом безладним (не дивно, що кожен кандидат наук швидко вирішив переписати все з нуля). Контроль версій був невідомий, і встановити його було неможливо через суворе програмне забезпечення та мережеві правила ІТ-відділу.
Зараз все справді вийшло напрочуд ОК, але як люди в галузі природничих наук розробляють своє програмне забезпечення?
Питання
Кілька конкретних питань:
- Які мови / середовища ви використовували для розробки наукового програмного забезпечення, особливо для аналізу даних? Які бібліотеки? (наприклад, що ви використовуєте для побудови графіка?)
- Чи проводився якийсь тренінг для людей, які не мали значного досвіду програмування?
- У вас було щось на зразок контролю версій та відстеження помилок?
- Як би ви намагалися створити гідне середовище для програмування, не перешкоджаючи окремим вченим (особливо фізики - вперті люди!)
Короткий зміст відповідей на даний момент
Наразі відповіді (або моє їх тлумачення): (2008-10-11)
- Мови / пакети, які видаються найбільш широко використовуваними:
- Контролем версій користуються майже всі респонденти; відстеження помилок та інші процеси набагато рідше.
- Курс столярної роботи з програмним забезпеченням - це хороший спосіб навчити вчених методів програмування та розробки.
- Як покращити ситуацію?
- Не змушуйте людей дотримуватися суворих протоколів.
- Налаштуйте середовище самі і покажіть переваги іншим. Допоможіть їм самі почати працювати з контролем версій, відстеженням помилок тощо.
- Перегляд чужого коду може допомогти, але майте на увазі, що не кожен може це оцінити.