Хороший инструмент незаметен
Автор блога 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