
Vim, persistent undo і NeoVim: як було втрачено довіру користувача
Блог Unsung Марціна Віхари процитував допис науковця Девіда Чисналла в Mastodon про persistent undo у vim: NeoVim видалив його файл undo разом з усіма даними, і це остаточно завершило його користування редактором.
28 серпня блог Unsung Марціна Віхари опублікував допис, майже повністю побудований на повідомленні науковця Девіда Чисналла в Mastodon. Тема — функція persistent undo у vim і ширше: що розробники винні даним своїх користувачів; заголовок узято з його власної фрази: «Вони не мали жодного уявлення про обовʼязок піклуватися про своїх користувачів».
Чисналл користується vim приблизно з 2000 року. За його словами, ним написано пʼять книжок, докторську дисертацію, кілька десятків наукових праць і понад 150 статей. Звичні команди виконуються настільки автоматично, що вже не потребують свідомості, а в документах, написаних іншими редакторами, посеред тексту лишаються випадкові команди vim.
Що захищає persistent undo
Persistent undo — одна з улюблених функцій Чисналла. Потрібна вона нечасто, але в потрібний момент стає незамінною: повернути щось видалене з файлу «може, минулого тижня й після перезавантаження» або зʼясувати, що саме зламала правка перед комітом. vim тримає це працездатним крізь основні оновлення версій уже близько 20 років: навіть після збою чи повернення до файлу за пів року історія undo залишається на місці. Чисналл називає це частиною Першого закону Раскіна.
Що сталося з NeoVim
NeoVim — форк vim. Чисналл спробував його, коли той був зовсім новим, і перше, що він помітив, — undo не працює; відкрити файл у vim теж не допомогло. NeoVim змінив формат файлів undo: старий файл він не оновив і власним файлам нової назви не дав, а просто видалив наявний файл undo від vim разом з усіма даними й замінив таким, якого vim прочитати не міг.
Після відкритого issue йому відповіли, що формат persistent undo нестабільний: користувачам не варто розраховувати на збереження даних у функції, яка прямо називається постійною, і що він змінювався одного разу й, імовірно, зміниться знову. На цьому досвід роботи з NeoVim завершився. «Автори одразу показали, що їм не можна довіряти жодні мої дані», — написав Чисналл і додав, що зламану функцію undo міг би пробачити як помилку, але не ставлення, за якого файл на диску користувача не є для програми причиною його не видаляти.
Закони Раскіна
Віхари цитує допис майже повністю й виносить із нього кілька уроків: люди справді памʼятають, коли програма втрачає їхню працю або ставиться до них без поваги, а фраза «це змінювалося одного разу й, імовірно, зміниться знову» добре описує, чому втрачену довіру так важко відновити. Допис також уперше завів на Unsung три закони Джефа Раскіна з книги The Humane Interface (2000): компʼютер не повинен шкодити вашій роботі й не може бездіяльністю допустити такої шкоди; він не повинен марнувати ваш час чи вимагати зайвої роботи; інтерфейс людяний, коли відповідає на потреби людей і зважає на їхні слабкості. Віхари називає цю книгу визначальною для себе.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.