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