私は、DVCS (Git、Hg、Bazar など) が、特に大学院生の科学的プログラミングのプロセスでどのように役立つかを調査するための準備作業を行っています。私はかなりの数年間プログラミングをしており、現在自然科学の修士課程を開始しているので、これについては非常に良い立場にあると思います。目標は、これに関する短いプレゼンテーションを 1 ~ 2 か月以内に行うことです。
私が見る限り、ソース管理の明らかな利点は別として、DVCS は現在、大学院生の日常生活に次のような改善をもたらします。
分岐:
これは大きなものです。DVCS の実践を観察すると、安価な分岐が主に新機能の実験を促進することが明らかです。科学的プログラミングはすべて実験です。パラメータやアルゴリズムを微調整するために、さまざまなブランチを作成できます。これは特に重要です。なぜなら、ほとんどの科学的コードは生涯を通じてリファクタリングの単一のアオタを見たことがないためです (ほとんどの大学院生はそれが何であるかさえ知りません)。高速コミットは、ラボ ノートブックの代わりにコミット コメントを使用することも意味します。計算結果は、再現可能な研究のために特定のコミット ハッシュコードにタグ付けできます。
サーバーへのプッシュ:
現在、ほとんどの科学的コードはある種のクラスターで実行されているため、DVCS はある種のより高度な Rsync として使用できます。これは、多くの人が既に「実稼働」コードを HPC クラスターにプッシュするために使用しています。これを分岐と組み合わせて、終了することなく複数のバージョンのコードを簡単に実行できます
論文の共同研究:
もっと言う必要がありますか?複数の著者による論文は、小規模なオープン ソース プロジェクトとまったく同じように運営されます。著者全員が LaTex で書いている場合、論文での共同作業は自然に適合するはずですが、Word などで書いている場合はさらに複雑になります。これは、コミット コメントがより大きな役割を果たす可能性がある場所です。
私の質問は、DVCS は科学プログラマーにどのような貢献ができると思いますか? コミュニティではソース管理に移行するという話がたくさん見られますが、ほとんどはまだ Subversion を検討中です。私のざっとしたメモから、DVCS は新しい大学院生にとって完璧なワークフロー パラダイムであるように思えます。私の考えは間違っていますか?それとも、科学的コーディングは単にDVCS ツールのことを耳にするほど遅れているのでしょうか?
関連している: