"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

コミット

コミットという言葉がある。
OSSの世界ではまた別のニュアンスがあるとしたら恐縮だが、エンジニアがコミットというと「とりあえず今やった作業を確定させておこう」というセーブポイントを積み重ねていく意味になる。
作業した分をコミットするのであり、ビジネスサイドの「xxをコミットしたのでもうやるしかない」という表現には「いや既にコミットしたんだから、やるしかないも何もないだろう」と違和感を覚えてしまう。


語源を引けば、もともとcommitは「信頼する、任せる」「引き渡す」の意味であり、commission「委託」やcommittee「委員会」に通じる。
現在のような意味の広がりをもつに至った歩みは明らかではないが、commit oneselfの代わりとしての自動詞的な「コミットする」の用法は初出が1982年と新しく、サルトルのengagementの影響によるものだろうとなっている。
つまり「自ら献身する、参加する」意味ということになる。
実際にコードを書くことでプロジェクトに参加するエンジニアの用法は少なくともこれとそれほど遠くないように思える。
ビジネスで使われる「引き受ける、約束する、誓う」という意味はどこから派生したのか結局謎だが、コミットしたことをやるという順序でおかしくはないことになる。


名詞のcommitmentはどちらかというと上のようなポジティブな意味を持つが、動詞のcommitには聖書由来かもう一つ古い意味があり、「(罪を)犯す」など「取り返しのつかないことをする」という用法がかなり多いようだ。
確かにデータベーストランザクションにおけるcommitはrollback(巻き戻し)できる限界を超えた状態への遷移のことだ。
ところで、ロシア語でも「罪(Преступление)」とは「人の定めを越えて(Пре)歩く(ступать)」ことである。『罪と罰』の訳注において江川卓は「ふみ越える」ことの本作における重要性をくどいほど解説している。


前に進むということは引き戻せないことを意味することがある。誓いを立てること然り、罪を犯すこと然り。
巻き戻せることを前提に作業の管理を行う我々エンジニアの「コミット」は、反故にできることを前提に約束をしているようにひょっとしたら古人には見えるだろうか。

「ぼくがあのとき、一刻も早く知りたいと思ったのは、自分はみなと同じようにしらみなのか、それとも人間なのか、ということだった。ぼくはふみ越えることができるのか、それともできないのか!」

罪と罰〈上〉 (岩波文庫)

罪と罰〈上〉 (岩波文庫)