NeoVimがVimの永続undo履歴を無断削除
原題: Installing NeoVim caused original Vim undo files to be deleted
なぜ重要か
データ保全はエディタ移行の最重要要件であり、開発者コミュニティの信頼獲得にも直結する問題だ。
コンピュータ科学者のDavid Chisnallは、NeoVimをインストールした際に20年分のVim永続undo履歴ファイルが無断で削除されたと報告した。NeoVimは旧形式のundoファイルを検知した際、アップグレードや別名保存をせず削除・上書きし、元のVimでもundo履歴が使えなくなった。開発側は「永続undoフォーマットは不安定であり、データ保全を期待すべきでない」と回答したという。
Mastodonに投稿したChisnallによると、彼は2000年頃からVimを使い続け、書籍5冊・博士論文・150本以上の記事を同エディタで執筆してきた。Vimの「永続undo(persistent undo)」機能を20年にわたり信頼しており、「先週削除したテキストを遡って復元する」「動いていたコードがリファクタリング後に壊れた原因を探る」といった場面で何度も助けられたと述べている。
問題はNeoVimを試した際に発生した。NeoVimは既存のVim undoファイルを検知すると、移行処理も別名保存もせず、そのファイルを削除して自身の形式で上書きした。結果として元のVimでも永続undoが機能しなくなり、蓄積されたundo履歴データは失われた。
ChisnallがNeoVimのIssueとして報告したところ、開発側から「永続undoフォーマットは不安定であり、過去にも変更されたし今後も変更される可能性がある。データが保全されることを前提にすべきでない」という趣旨の回答が返ってきた。
Chisnallはこの対応を厳しく批判する。「バグとしてundoを壊すことは許せるが、ファイルシステム上に存在するユーザーのデータを平然と削除する姿勢は、ユーザーへのケアの義務(duty of care)を全く理解していない証拠だ」と述べ、NeoVimの使用を即座にやめたという。
この件を取り上げたブログ「Unsung」の著者Marcin Wicharyは、Jef Raskin(MacintoshおよびCanon Catで知られる)が著書『The Humane Interface』(2000年)で提唱した「Raskin's First Law」を引き合いに出した。「プログラムはユーザーのデータを損なってはならない。また、不作為によってデータが損なわれることを許してもならない」という原則だ。
NeoVimは最近、別の理由でも注目を集めているが、今回のエピソードは「ソフトウェアが一度ユーザーの信頼を失うと、その記憶は長く残る」という教訓を改めて示している。