Налог на универсальность
Дата: 2026-07-04. Черновик, RU-версия 2026-07-04_universality_tax_DRAFT.md. Не перевод, а пересказ для русского читателя. Не опубликовано; см. заметку о размещении в конце.
Коротко
Универсальный инструмент делает любую задачу возможной, но почти никогда — дешёвой. Каждый сценарий использования — это отдельная стройка поверх платформы. Цену этой стройки легко недооценить заранее, а сам процесс легко полюбить сильнее, чем результат. Вот вторая половина и есть ловушка: инструмент приглашает строить инструмент вместо того, чтобы им пользоваться. У социологов для этого есть термин (смещение целей), у каждого второго гаража — Жигули, которые чинят тридцать лет, а у trip2g — квитанция: «простой шаблон канбан-доски», который потребовал шесть заходов правок в ядро. Универсальность — это обещание и налог одновременно. Дисциплина в том, чтобы платить налог осознанно, когда его требует контент, и замечать момент, когда начал платить его для удовольствия.
Квитанция за канбан
В чате про Obsidian спросили: может ли что-нибудь отрендерить канбан-доску из заметок? trip2g — универсальная платформа, markdown на входе, что угодно на выходе. Честный ответ: «конечно, это просто шаблон». Я вызвался сделать.
Вот во что «просто шаблон» обошёлся на самом деле, по git-логу:
- Шаблону понадобился «хром» сайта. Кастомный layout заменяет страницу целиком — и теряет стандартную шапку, подвал, логин и поиск. Пришлось добавить в ядро аксессоры
Header/Footerдля кастомных layout'ов, хелперuser_space_scripts()для стандартных виджетов, а заодно вычистить Jet-хелперы до чистого camelCase. Это ядровой PR #43, «unified layouts stack». - Перетаскивание карточки не должно переписывать заметку целиком. В заметке с доской есть текст, который доска не моделирует; наивное сохранение его бы уничтожило. Шаблон потребовал точечного сохранения через
updateNotes, а оно — нового режима в ядре: create-only upsert с сигнальнымexpectedHash:"". - Контракт хеширования всё равно укусил. Шаблон считал хеш в обычном base64, сервер говорит на base64url. Около 74% сохранений молча падали, пока живой тест не нашёл расхождение в один символ алфавита.
- Jet съел HTML-комментарий.
{{...}}внутри комментария в layout'е ломал рендеринг полностью. Шаблонизатору всё равно, что вы «просто комментировали». - Два браузера, одна доска, потеря данных. Live-синхронизация вскрыла по-настоящему трудную проблему: одновременные правки затирали друг друга. Ушло три PR (#46, #47, #49): merge на уровне карточек, ядровое изменение
updateNotes— возвращать настоящий versionId каждого сохранения, и «ok-path clobber», который нашёл только адверсарный ревью-проход. Четвёртый остаточный путь (SSE catch-up) известен и отложен. - Установка должна быть одной командой. Флаг
memcli --kanbanв ядре (PR #45) плюс переключатель темы (#48).
Итого: один «простой шаблон» — это правки в движке layout'ов, в контракте сохранения и версий, в семантике синхронизации и в CLI, примерно за две недели, с двумя багами, которые могло найти только живое использование. Доска вышла и получилась хорошей: trip2g/kanban_template, ставится одной командой curl, не теряет данные. Но бесплатным не было ничего. Универсальность была «заложена в дизайн» — а дверь всё равно пришлось строить, вместе с петлями.
Налог в одном предложении: платформа гарантирует, что дверь возможна, а не что она есть.
Есть ли этому название?
Частично. Что-то — именованная академическая теория, что-то — народное наблюдение с хорошими источниками. Честно разделим.
Смещение целей — настоящая теория. Роберт Мертон, «Bureaucratic Structure and Personality» (1940): правила, задуманные как средство, становятся целью, и организация оптимизирует средство, пока цель голодает. Придумано про бюрократов, но механизм — ровно про возню с инструментом: хранилище заметок было средством думать, а теперь вы обслуживаете хранилище. Самая близкая теория ко всему этому тексту.
Закон тривиальности Паркинсона («велосипедный сарай») — настоящий, именованный, полусатирический. Сирил Паркинсон, 1957: комитет утверждает атомный реактор за минуты и 45 минут спорит о сарае для велосипедов — потому что сарай помещается в голове у каждого. Стройка инструмента — велосипедный сарай умственного труда: посильная, наглядная, до конца понятная. В отличие от самого текста.
Yak shaving — настоящий термин, народное понятие. Придумал Карлин Виери в MIT AI Lab (1993–98), по мотивам серии «Рена и Стимпи»; популяризовал Сет Годин. Рекурсивная цепочка предпосылок: чтобы написать заметку, чинишь шаблон; чтобы починить шаблон, патчишь ядро; чтобы пропатчить ядро, чинишь кодировку хеша. Раздел про канбан выше — журнал yak shaving с хешами коммитов. Важное отличие от смещения целей: yak shaving — предпосылки, которые действительно нужны; смещение — когда они уже не нужны, а ты продолжаешь.
Структурная прокрастинация — настоящее, опубликованное. Джон Перри, философ из Стэнфорда, эссе 1996 года; Шнобелевская премия по литературе 2011-го. Прокрастинатор делает трудные и полезные вещи — как способ не делать самую важную. Построить красивый пайплайн публикации — мировой класс способа не писать.
Ошибка коллекционера — именованная, из сообщества. Кристиан Титце (zettelkasten.de): «знать о чём-то — не то же самое, что знать что-то». Сбор и раскладывание заметок даёт сигнал вознаграждения от работы — без работы. Возня с инструментом — та же ошибка уровнем выше: настраиваешь систему, которая разложит заметки, которые ты потом не прочтёшь.
«Productivity porn» / ловушка идеального инструмента — фольклор, но массовый. Ness Labs и другие описывают возню с PKM как «изощрённую прокрастинацию»: состояние вечной подготовки, которое ощущается как прогресс. Контролируемых исследований не нашлось; сходящихся свидетельств — много.
3D-принтер — фольклор с самоиронией. Идеал проекта RepRap — принтер, печатающий собственные детали; шутка написала себя сама. Типичное признание из сообщества: «Я трачу больше времени на печать апгрейдов для принтера, чем на печать всего остального». Идеал самовоспроизводства сделал сбой структурным: самый естественный продукт машины — ещё немного машины.
Вечный гаражный проект — наблюдение, не исследование. Паттерн старше софта. Мужчина держит старую машину вечно — канонический случай: Жигули. Машина, которая всегда требует ремонта, и он всегда её ремонтирует. Как транспортная экономика это безумие: исправная машина обошлась бы дешевле. Как ремонт — всё сходится: продукт и есть ремонт. Гараж — свой угол, ритуал — отдых, «я сам держу её на ходу» — идентичность. Контролируемых исследований жигулеводства никто не публиковал, но это рифмуется с тем, что психология хобби говорит о мотивации «процесс важнее результата» и о потоке: людям нужен ограниченный, подвластный мир, и бесконечно чинимая машина — ровно он.
И это то, чего не хватает всем «прокрастинационным» объяснениям. Возня — часто не окольный путь к награде. Возня и есть награда.
Итого: статьи «почему универсальные инструменты заставляют строить инструмент» не существует. Но составные части именованы и складываются. Мертон объясняет дрейф (средство становится целью), Паркинсон — направление (к посильному), Перри — почему это не мучает совесть (ты же работаешь), Титце — петлю вознаграждения (видимые артефакты без результата), а гараж — почему не хочется останавливаться (петля и есть смысл).
Два налога с одной платформы
История с канбаном и история с Жигулями похожи, но налог платят разные люди.
Налог строителя — структурный и честный. Платформа — это примитивы, а примитивы не решают задачи; задачи решают композиции. Каждая дверь, которую кто-то хочет (доска, журнальная вёрстка, canvas), — настоящая инженерия поверх, и универсальность платформы часто делает её труднее: дверь обязана уживаться со всем остальным, что платформа обещает. Здесь — с произвольным текстом в той же заметке, live-синхронизацией, версиями и правами. «Это просто шаблон» промахнулся на порядок именно потому, что платформа была достаточно универсальна, чтобы сказать «да». Этот налог неизбежен. Выбор только в том, когда его платить.
Налог пользователя — психологический и коварный. Та же открытость, что делает возможными одиннадцать дверей, делает стройку дверей самым соблазнительным занятием в здании. Человек в гараже не «не может получить машину» — машина у него есть, более-менее. Он получает другое: ограниченный, подвластный мир, свой угол, где проблемы посильные, прогресс видимый и никто не двигает требования. Это по-настоящему хорошая вещь; беда только в том, что она носит костюм работы. Результат был предлогом, возня — наградой, и потому остановиться так трудно: силой воли не выйти из того, что тебе тихо платит.
И так — везде, не только в гараже:
- homelab / self-hosting: стойка с Proxmox и k8s дома, чтобы хостить то, что бесплатно в облаке;
- механические клавиатуры: собирают и смазывают чаще, чем печатают;
- dotfiles и «ricing»: годами полировать конфиг neovim вместо кода; Emacs — по старой шутке, отличная ОС, которой не хватает только приличного редактора;
- 3D-принтер, который печатает апгрейды для себя;
- «космолёты из Obsidian»: сорок плагинов, dataview-дашборд для дашбордов — и ни одной написанной заметки.
Это смещение целей с улыбкой хоббиста: сбой пользователя, приглашённый дизайном. Ограниченные инструменты такого не предлагают: никто не превращает пишущую машинку в образ жизни, и никто не лежит каждые выходные под машиной, которая не ломается.
Продавец универсального инструмента продаёт оба налога как достоинство. «На этом можно построить что угодно» — правда. И она же значит: «всё, что вы захотите, придётся строить» и «стройка может понравиться вам больше, чем что угодно».
Что это значит для trip2g
Не «избегать универсальности». Ставка на платформу — правильная ставка; почему — уже разобрано в тексте про позиционирование. Но из налога следуют три правила.
Платить осознанно, по запросу контента. Канбан-доску стоило строить: живой человек задал живой вопрос, а получилась переиспользуемая дверь — и ядровые изменения, которые она вытянула (хром, точечные сохранения, корректная синхронизация), удешевили все будущие двери. Строй дверь, когда перед ней кто-то стоит. Не строй впрок: дизайн-доки canvas, bases и grid layouts лежат в docs/dev/ непостроенными ровно поэтому — и это правильно.
Честно считать налог в питче. «Можно отрендерить канбан-доску» и «есть шаблон канбан-доски, ставится одной командой» — разные утверждения, и дверью является только второе. Текст про позиционирование говорит: выбирай дверь под аудиторию. Этот добавляет: непостроенная дверь — это стена с табличкой.
Не выдавать возню за работу — в том числе себе. Строить двери trip2g — наша работа, поэтому для нас возня и есть работа, и границу мы судим хуже всех. Тест, который переживает и Мертона, и гараж: это изменение существует потому, что его потребовал контент, — или потому, что строить приятнее, чем писать? Канбан-доска тест проходит. Не всё в бэклоге пройдёт. А когда изменение тест не проходит, честный ход — не стыдиться, а назвать: это мои Жигули, я делаю это, потому что нравится. Так можно. Только не записывай это в результат.
Тезис «выбери дверь» и этот — одна монета. Двери — то, как платформу объясняют; налог — то, чего двери стоят. Платформу без построенных дверей нельзя объяснить вовсе, а команда, которая только строит двери, ничего сквозь них не выносит.
Заметка о размещении (не часть текста)
Пара к EN-черновику 2026-07-04_universality_tax_DRAFT.md. При публикации: docs/ru/thoughts/universality-tax.md + lang_redirect на EN-пару, перекрёстные ссылки с «Универсальные инструменты не помещаются в одну фразу» (universal-tools). Отличия от EN-версии — по замыслу: развёрнутый пример — Жигули в гараже (родная память, тепло, не насмешка), западные примеры даны коротким списком «и так везде»; в EN — наоборот. Перед публикацией: хеши коммитов заменить ссылками на PR или убрать, раздел «для trip2g» смягчить из командной дисциплины в совет читателю. Источники — в EN-черновике.