「彼らにはユーザーに対する注意義務という概念がなかった」
原文は Marcin Wichary により に公開されました。 このブログを購読する
計算機科学者David ChisnallによるMastodonの投稿は、いかにもUnsungらしい出だしで始まっている。
私は2000年頃からvimを使っている。これまでに5冊の本、博士論文、数十本の論文、そして150本以上の記事をvimで書いてきた。今では、よく使うvimのコマンドを打つときに高次の脳機能が働くことはまったくない。ただ手が勝手に動くだけだ。ほかのエディタで書いた文書には、途中にランダムな :w が紛れ込んでいたりする。
Chisnallは、vimのとある特定の機能についてこう続けている。
永続的アンドゥ(persistent undo)は、私が最も気に入っているvimの機能のひとつだ。 […]
永続的アンドゥを頻繁に使うわけではない。しかし、必要になった数少ない場面では、本当にかけがえのないものだった。おっと、このファイルから何かを削除してしまった、たぶん先週、再起動を挟む前のことだ。あれは何だったっけ? 見つかるまでアンドゥして、コピーして、現在のバージョンに貼り付ける。あるいは、もう少しよくあるケースでは、さっきまで動いていたのに、コミットに向けてきれいに整えたら動かなくなった。一体何をやったんだ? といった具合だ。
vimはこの機能を、約20年にわたるメジャーバージョンアップを通じて維持し続けてきた。いちいち意識することすらない。それはただ、ラスキンの第一法則の一部なのだ。曰く「プログラムはユーザーのデータを害してはならない。また、不作為によってユーザーのデータが害されることを許してもならない」。vimやコンピュータがクラッシュしても、ファイルを閉じて半年後に開き直しても、アンドゥの履歴はそこに残っている。
NeoVimはvimのフォークだ(別の理由で最近話題になっていた)。
それで、NeoVimがまだかなり新しい頃に試してみた。使い慣れたvimが、より良くなったもの? 最高じゃないか!
NeoVimで最初に気づいたのは、アンドゥが効かないということだった。ファイルをvimで開き直してみたが、そこでもアンドゥはさえ効かなかった。
NeoVimはアンドゥファイルのフォーマットを変更していた。古いファイルを変換したわけでもない。別の名前で保存するようにしたわけでもない。ただ、vimのアンドゥファイルがあるのを見つけると、それを削除し(中のデータをすべて失わせた上で)、vimでは読めないファイルに置き換えていたのだ。
この件についてissueを立てたところ、永続的アンドゥのフォーマットは不安定であり、文字通り永続的(persistent)と名付けられた機能であっても、データが保持されることを当てにしてはならないと言われた。すでに一度変更されており、おそらくまた変わるだろう、というのだ。
それで私のNeoVim体験は終わった。作者たちは、私のデータを一切任せるに値しないことを即座に示してみせた。永続的アンドゥが壊れたこと自体は、バグとしてなら許容できた。しかし、ファイルシステム上に永続的に保存された、ユーザーが後で必要とするかもしれないデータが入ったファイルであっても、自分たちのプログラムがそれを削除しない理由にはならない、という態度は、彼らがユーザーに対する注意義務という概念をまったく持ち合わせていないことを意味していた。
私がこの投稿を気に入ったのは(ほぼ全文を引用したが)、いくつか重要な点が含まれているからだ。
- あのような永続的アンドゥのことは聞いたことがなかったが、なんだかすごいと思った。
- ソフトウェアに苦労の成果を失われたり、ぞんざいに扱われたりしたことは、人は覚えているものだ。
- 「すでに一度変更されており、おそらくまた変わるだろう」という言葉が、どれほど強い感情を引き起こすか、よくわかる。
この投稿が気に入ったもうひとつの理由は、ラスキンの第一法則が登場したことだ。MacintoshやCanon Catで知られるJef Raskinは、2000年の著書『The Humane Interface』の中で三つの法則を提唱しており、それらは次のとおりだ。
- コンピュータはあなたの仕事を害してはならない。また、不作為によってあなたの仕事が害されることを許してはならない。
- コンピュータはあなたの時間を無駄にしてはならない。また、厳密に必要な以上の仕事をあなたに要求してはならない。
- インターフェースがヒューマンであるとは、人間のニーズに応え、人間の弱さに配慮していることである。
この本は、若いデザイナーだった頃の私にとって、とても重要で形成的な出会いだった。なぜこれらの法則が今日までUnsungで取り上げられてこなかったのか、見当もつかない。
記事をランダムに読む
コメント
ログインしてコメントする