バックグラウンド
昨年、大学の物理研究グループでインターンシップをしました。このグループでは、主にLabVIEWを使用して、セットアップの制御、データの取得、およびデータの分析を行うためのプログラムを作成しました。最初の 2 つの目的については、これで問題ありませんが、データ分析の場合は非常に面倒です。その上、誰もがほとんど独学だったので、書かれたコードは一般的にかなり混乱していました (すべての博士号がすぐにすべてをゼロから書き直すことにしたのも不思議ではありません)。バージョン管理は不明であり、IT 部門からの厳しいソフトウェアおよびネットワーク規制のために設定することは不可能でした。
さて、実際には驚くほどうまくいきましたが、自然科学に携わる人々はどのようにソフトウェア開発を行っているのでしょうか?
質問
いくつかの具体的な質問:
- 科学ソフトウェア、特にデータ分析の開発に使用した言語/環境は何ですか? どのライブラリ?(たとえば、プロットには何を使用しますか?)
- プログラミングのバックグラウンドがあまりない人向けのトレーニングはありましたか?
- バージョン管理やバグ追跡などはありましたか?
- 個々の科学者 (特に物理学者は頑固な人々です!) の邪魔をせずに、プログラミングのための適切な環境を作ろうとするのはどうですか?
これまでの回答のまとめ
これまでの回答 (または私の解釈): (2008-10-11)
- 最も広く使用されていると思われる言語/パッケージ:
- ほぼすべての回答者がバージョン管理を使用しています。バグ追跡やその他のプロセスはあまり一般的ではありません。
- ソフトウェア大工コースは、科学者にプログラミングと開発のテクニックを教える良い方法です。
- 物事を改善するには?
- 厳格なプロトコルに従うことを強制しないでください。
- 自分で環境を設定し、そのメリットを他の人に示します。バージョン管理やバグ追跡などの作業を自分で開始できるように支援します。
- 他の人のコードをレビューすることは役に立ちますが、誰もがそれを評価するわけではないことに注意してください。