Хороший инструмент незаметен

Автор блога gingerbill.org опубликовал эссе «Good Tools Are Invisible» (пост набрал 441 голос и 205 комментариев на Hacker News), в котором формулирует главный тезис: хороший инструмент незаметен, он растворяется в фоне, пока делает свою работу, и это должно быть целью любого создателя инструментов.

Отправная точка, привычка, которую автор регулярно наблюдает: слабости инструмента переупаковывают в «увлекательную головоломку». Пример, редактор vim. Автор рассказывает, как люди с восторгом описывали ему, сколько «удовольствия» доставило написание макроса для разового рефакторинга текста, хотя по факту та же задача решалась за минуту через множественное выделение курсоров (multiple cursors) в Sublime Text или коротким скриптом. Автор пользуется Sublime 15 лет и объясняет выбор: сочетания клавиш совпадают с общесистемными (меньше переключения контекста), множественные курсоры почти всегда эффективнее макросов (за десять лет ему реально понадобились макросы лишь дважды, и оба раза их настройка заняла больше времени, чем написание скрипта), а визуальная обратная связь снижает число «головоломок» в повседневном редактировании. При этом он честно перечисляет минусы Sublime и не превращает их в фан-факты.

Далее автор вводит понятие «инструмент как часть идентичности»: выбор редактора часто становится флагом, который человек «втыкает в землю», заявлением о себе. Именно поэтому споры о vim/emacs превращаются в почти религиозные: признать недостаток инструмента начинает ощущаться как признание недостатка в себе, и вместо того чтобы мириться с изъянами, люди их защищают и выставляют напоказ как достоинства.

Отдельная тема, разрыв между ощущением продуктивности и реальной продуктивностью. Решение запутанной задачи в стиле «а вот как я красиво выкрутился» дарит чувство хитроумия, которое легко спутать с фактическим результатом. Честный тест инструмента, по автору, не то, насколько вовлечённым или умным ты себя чувствовал, а затраченное время на часах и число ошибок по пути; многие культово превозносимые инструменты этот тест проиграют.

Аналогичную логику автор применяет к спору TUI (терминальные интерфейсы) против GUI: то, что многие графические приложения нельзя полностью использовать с клавиатуры, не доказательство превосходства терминалов, а просто признак того, что разработчики конкретных GUI не потрудились сделать навигацию с клавиатуры. Ничего принципиально невозможного в клавиатурно-навигируемом GUI нет.

Ту же мысль автор переносит на популярность Linux как десктопной системы: «год Linux на десктопе» до сих пор не наступил отчасти потому, что часть сообщества воспринимает бесконечную настройку конфигурационных файлов как развлечение и головоломку саму по себе, а не как препятствие. Сам автор прошёл через эту фазу, но со временем захотел, чтобы вещи просто работали из коробки, а тонкая настройка занимала секунды, а не часы и дни.

Отсюда центральный принцип для тех, кто делает инструменты: максимальная настраиваемость не должна быть целью, она должна быть опцией на случай реальной необходимости, а хорошие настройки по умолчанию, это форма уважения к времени пользователя (создатель инструмента думает один раз, чтобы тысяче пользователей не пришлось думать за него). Автор прямо называет тезис «высокая конфигурируемость» зачастую оправданием того, что разработчик не принял решения и переложил эту работу на пользователя.

Отдельно разбирается защита «крутой кривой обучения» как достоинства (якобы она отсеивает случайных людей и вознаграждает тех, кто прошёл через неё). Автор возражает: кривая обучения, это издержка, а не добродетель сама по себе; она оправдана только если даёт реальный прирост продуктивности, а не просто удовлетворение от того, что цена уже заплачена (классическая ошибка невозвратных затрат, переодетая в «это того стоило»).

В заключение автор подчёркивает: эссе, не против конкретных инструментов (используйте vim, emacs или Sublime, что угодно), а против образа мышления, при котором ограничения инструмента переупаковываются в достоинства, а усилие по обходу недостатка продаётся как награда. Признак того, что инструмент действительно служит пользователю, то, что пользователь перестаёт его замечать: не защищает его недостатки, не строит на нём идентичность и не путает чувство хитроумия с фактом продуктивности.

Ключевые факты

  • Главный тезис эссе на gingerbill.org (441 голос, 205 комментариев на HN): хороший инструмент должен быть незаметен, растворяться в фоне работы, а не требовать «геройства» от пользователя
  • Критика культуры vim/emacs, где недостатки редактора (например, необходимость писать макрос для разового рефакторинга) выдают за увлекательную головоломку; автор сравнивает с множественными курсорами в Sublime, которые решают ту же задачу быстрее
  • Выбор инструмента часто становится частью идентичности («флагом»), из-за чего критика инструмента воспринимается как критика личности, отсюда религиозный накал споров об редакторах
  • Автор разводит «ощущение продуктивности» (чувство хитроумия от решения муторной задачи) и реальную продуктивность, которую честно измеряет только затраченное время и число ошибок
  • Спор TUI vs GUI и медленное распространение Linux на десктопе, примеры того же паттерна: недостатки конкретных реализаций выдают за принципиальное превосходство подхода, а конфигурирование ради конфигурирования подменяет цель «инструмент должен просто работать»

Почему это важно

Эссе фиксирует явление, знакомое почти каждому разработчику: культ инструмента, где сложность и трение выдаются за достоинство. Автор даёт язык для разговора об этом, различие между «инструмент как средство» и «инструмент как идентичность», а также простой тест: считает ли инструмент реальное время и число ошибок, а не субъективное ощущение вовлечённости. Резонанс на Hacker News (441 голос, 205 комментариев) говорит о том, что тема задевает давний и болезненный для разработчиков спор об редакторах, терминалах и Linux.

Кому это важно

В первую очередь, разработчикам инструментов (редакторов, CLI, GUI-приложений): автор прямо адресует им тезис о том, что хорошие настройки по умолчанию, их обязанность, а не то, что можно переложить на пользователя через «настраиваемость». Также материал важен рядовым программистам, которые выбирают между vim/emacs, Sublime, TUI и GUI-приложениями и хотят принимать это решение по фактической продуктивности, а не по «хакерскому духу» или групповой принадлежности.

Как это применить

Практический вывод для разработчиков инструментов: проектировать вокруг хороших дефолтов, которые закрывают типовой сценарий без настройки, а расширенную конфигурируемость оставлять как «аварийный люк» для меньшинства с нестандартными нуждами. Для пользователей инструментов автор предлагает честный тест выбора: измерять реальное время выполнения задачи и число ошибок, а не ощущение вовлечённости или мастерства, и быть готовым признать недостатки любимого инструмента, не защищая их как часть идентичности.

Можно ли доверять

Материал, авторское эссе-мнение (полноценно доступен исходный текст, докачка не потребовалась), а не новостной репортаж с проверяемыми фактами или цифрами: автор опирается на личный опыт (15 лет использования Sublime) и наблюдения за поведением сообщества, без ссылок на исследования или статистику. Аргументация логически последовательна и подкреплена конкретными примерами (макрос против multiple cursors, TUI против GUI), но выводы остаются точкой зрения одного практика, которую стоит воспринимать как повод для рефлексии, а не как доказанный факт.

Риски и подводные камни

Автор сам предвосхищает главное возражение, что эссе не против конкретных инструментов (vim, emacs, Linux), а против образа мышления вокруг них; тем не менее текст может быть прочитан как нападки на конкретные редакторы или дистрибутивы, что спровоцирует ту же трайбалистскую реакцию, которую он критикует. Также стоит учитывать, что тезис о «плохих GUI, которые просто не доделали до keyboard-navigable» не всегда бесспорен: для части задач терминальные интерфейсы объективно эффективнее не из-за недоработки GUI, а из-за природы задачи (скриптуемость, удалённая работа по SSH и т. п.), и эссе не разбирает эти случаи подробно.

«Хороший инструмент есть и должен быть незаметным, стремление создавать такие инструменты и есть цель создателя инструментов.»

— автор эссе, gingerbill.org