NeoVimはユーザーのデータを守る義務感を欠いていた
"They had no concept of a duty of care to their users."

コンピュータ科学者David Chisnallは、vimの永続undo機能を高く評価しつつ、NeoVimがvimのundoファイルを削除して読めない形式に置き換えた経験を語る。バグなら許せても、ユーザーデータを消すことへの無責任な態度は許せないとし、Raskinの第一法則「コンピュータはユーザーの作業を害してはならない」に言及。ソフトウェアがユーザーを軽視する姿勢への警告となっている。
永続undoを壊したことはバグとして許せるかもしれないが、ファイルシステム上に存在する永続ファイルにユーザーが求めるかもしれないデータが含まれているというだけで、自分のプログラムがそれを削除してもよい理由にはならないという態度は、彼らにユーザーに対する注意義務の概念が全くなかったことを意味していた。
HNでの議論
314- jeremyjh
この話には著者の出来事の説明を裏付ける参考文献がないが、以下の点はかなり真実であるように思われる:
1. この変更はNeovimとVimの両方でundo履歴を壊すだろう[編集参照:実際にはそうではない]
2. つまりNeovimは別のプログラムによって、別のユーザーのコンピュータ上で作成されたデータを削除することになる。
3. この機能がリリースされる前から知られていた。
4. それでも彼らはやった。
これに対して事後的な正当化は本当にあり得ないと思う。
https://github.com/neovim/neovim/pull/13973#issuecomment-789...
編集:重要な詳細を見落としていた。ユーザーはnvimとvimの両方でundodirに同じパスを指定していた。Vimはこの機能を有効にするためにパスを必要とする - 共有のデフォルトパスは存在しない。ユーザーがパスを共有したことで、私の見方では話がかなり変わる。なぜなら今やこれは、nvimがデータ移行を書く代わりに、nvim自身が作成したデータを削除するケースだからだ。
それには依然として反対できるかもしれないが、少なくとも「別のパスを使えばいい」といった代替案がより複雑になり、この状況の私の読み方を完全に変える。この文脈ではNeovimの決定は正当化できると思う。おそらく古いundoフォルダの内容をどこかに保存し、ユーザーに通知することもできただろう - 議論の余地はあるが、それはより共感的だっただろう。彼らにそうする道徳的義務があったとは必ずしも同意しない。
- gavinhoward
Neovimユーザーとして、これは痛烈な気づきとともに私を立ち止まらせた:私は同じことを経験したかもしれないが、気づかなかったのだ。かつて何かをundoできなかったことがあり、それはNeovimのアップグレード後だった。
Chisnall博士とは違い、私はエディタの旅をNeovimから始めたので、移行で噛まれたわけではない。しかし、永続undoファイルのフォーマットが不安定で、Neovimが以前のフォーマットを認識しないと単に削除するなら、フォーマット変更後のアップグレードでファイルが削除されることもあり得るように(私には)思える。
痛い。これはNeovimから離れることを考えさせる。そう、FOSSは現状のままで提供されるが、代替があるなら…
- sdcfgy
私はvimがDebianリポジトリに初めて現れた時から使っている。NeoVimの方が優れていて、より現代的で、多くの(都合よく決して引用されない)問題を解決すると何千回も言われてきた。私はそれを無視して続けてきた。この時点でひどく正当化された気分だ。なぜならこれは私が定期的に使う機能であり、NeoVimで問題になるとは知らなかったからだ。
- gchamonlive
何か見落としているのだろうか?人々は永続undoをバックアップとして使っているのか?
しかしこれはむしろドキュメントとUXの問題のように思える。Neovimは古いundoファイルを削除する前に警告して確認するか、少なくともバックアップすべきだが、人々が信頼できるバックアップとバージョン管理システムを使わないのはneovimのせいではない。これのために永続undoに頼るのは自ら招いた傷のようなものだ。
適切なツールを仕事に使え。neovimの開発者が「ユーザーに対する注意義務の概念を持っていなかった」と言うのは本当に失礼だ。NeovimのLua APIは思いやりで溢れている、ただ見に行けばいい。
- BarbaryCoast
VIMのリビジョン履歴によれば、永続undoは2010年にリリースされたバージョン7.3で登場した。つまりChisnallは2000年から使っていたかもしれないが、彼が書いた本の少なくとも2冊については永続undoを持っていなかった。そしてそれは「ほぼ20年間維持されてきた」わけではなく、せいぜい16年だ。
しかしそれは素晴らしい機能だ。
私はバージョン管理を使ってそうしている。エディタにフックして「保存」が「チェックイン」になるようにしている。これで、たまたま使っているツールに関係なく、すべての状態の永続的でバージョン管理されたコピーが手に入る。
- natbennett
私もNeovimの非常に初期のユーザーだった。
私が個人的に覚えている位置づけは「Vim、ただし破壊的変更あり」だった。
- dlisboa
> ファイルシステム上に永続ファイルがあり、あなたが欲しいかもしれないデータが含まれているからといって、彼らのプログラムがそれを削除しない理由にはならないという態度は、彼らがユーザーに対する注意義務の概念を持っていなかったことを意味する。
それは間違った見方だ。NeoVIMはユーザーへの気遣いについて異なる概念を持っている。彼らは別の種類の気遣い、より現代的な期待に沿ったものを最適化している。VIMはそれを気にしなかった(だからフォークした)。
それは良いか悪いかではなく、ただ違うだけだ。
同じ記事は、VIMがネイティブのLSP統合やオートコンプリートを持たず、ユーザーに対する義務や気遣いがないことについても書けたはずだ。
- skybrian
ソフトウェア開発者は時々ユーザーに約束をするが、私はこれらの約束は想定されるのではなく明示されるべきだと思う。単に「注意義務」を想定して、他の人々があなたと同じように理解してくれると期待することはできない。
(というより、できるかもしれないが、おそらく失望するだろう。)
- RVuRnvbM2e
Undoファイルと永続undoはそのようには機能するようにはなっていない。それらはプロセスの再起動をまたいで永続するだけだ。それだけのことだ。
それらは~/.cacheにあり、そこは「ユーザー固有の非必須(キャッシュ)データ」と定義されている。
このユーザーの印象的な経歴にもかかわらず、彼らは単にこの機能を誤解していたのだ。
- joelthelion
vimユーザーとして、neovimは一つの点で役に立ったと感じる:通常のvim開発を少し揺さぶったことだ。とはいえ、乗り換える理由は見当たらない。古き良きvimは堅牢で機能豊富だ。neovimの競争によって死なないことを願う。