Laboratory Notebook

Jupyter notebook でのコーディングにおける best practice みたいのが知りたいな、と軽く検索したりしてみたが、めぼしい記述はみあたらなかった。ふと Notebook の出処である工学部とかの Notebook はどうやってるのかと思って調べてみたら、割と違う世界が広がっていた。(これ や これ など)

Laboratory Notebook とよばれる実験とかの記録を残すノートは、発明や発見を示す重要な証拠である。要するに論文とか特許を書くときのもとねたであり、裁判になったときに提出する資料だ。だから客観性、網羅性、integrity、などが重要。かなり rigorous にやっている。

省みて Jupyter Notebook はどうか。Data Science な人たちの一部は reproducibility を強調している。Reproducibility は Laboratory Notebook の精神に通じるところがある。Jupyter notebook は何も考えないと reproducible にならないけれど、ふつうのプログラマならそれを reproducible にするのはむずかしくない。バージョン管理も、まあするでしょ。なので Laboratory Notebook に必要なものの多くは簡単に実現できる。

そして自分の関心は、証拠づくりよりは自動化や整理整頓を通じたワークフローの効率化にある。あとはツールとしての ergonomics を気にしている。これはいかにもプログラマ的な関心事で、Laboratory Notebook ユーザとは話が合わなそう。そして ML の文脈だと、プログラマとしての関心を追求するのもいいけれどその前に Laboratory 的な rigorous で scientific な物事の進め方を気にする方が良いのかもしれない。試行錯誤というのは自動化の反対側にあるからね。

具体性のないところで考えすぎている気がする。保留。