В далёкие 90-е мы с нетерпением ждали релизов любимых программ с новыми фичами. Но с выходом MS Office 2000 (на скриншоте) стало ясно — что-то пошло не так. Оказалось, новые функции не только помогают, но и мешают…
И сейчас главная задача — отключить обновления во всех программах. Дошло до того, что приходится копаться в многолетних архивах того же uTorrent, чтобы найти версию без рекламы, которая работала нормально, пока не пришли бодрые менеджеры и не испортили программу на годы вперёд… То же самое по остальным инструментам, которые обрастают фичами и реально деградируют.
Что больше всего бесит в современных приложениях
Даже нет смысла устраивать опрос, что бесит в современных приложениях. Слишком многое.
* Общая тормознутость (Electron и т. д.), лаги.
* Реклама (особенно в мобильных приложениях).
* Постоянные изменения интерфейса.
* Бесконечное добавление новых, ненужных фич.
Хорошо, когда у нас есть набор постоянных инструментов, которые не меняются. Тогда можно выбрать подходящие версии, настроить их оптимальным образом, изменить настройки и даже отредактировать код — и сохранить контейнер идеального рабочего места, который можно всегда носить с собой. На любом компьютере у вас будет идеальный набор оптимизированных инструментов.
Но есть же смартфоны, планшеты и мобильный веб, где ничего особо не сделаешь. Даже блокировщик рекламы работает ограниченно не во всех приложениях. И вот там мы наблюдаем хаос в полном масштабе.
Простой пример. Достаёшь телефон, открываешь приложение (или сайт), хочешь нажать кнопку, а она прыгает в другое место прямо перед нажатием!
Или другой пример — совершенно бестолковые подсказки при поиске (на скриншоте внизу).
И такое повсеместно.
Засилье фич, усложнение программ
На десктопах такой же бардак. Если выйти за пределы своего рабочего контейнера с жёстко зафиксированными номерами рабочих программ, то снаружи открывается настоящая бездна хаоса.
Многие разработчики склонны постоянно добавлять в свои программы новые функции, так что через несколько версий начинается хаотическая мешанина. Это то, что называется «ползучее расширение функциональности» (feature creep).
Это в полной мере относится к FreePBX!
Есть мнение, что ползучее расширение функциональности — проблема менеджеров, которые упускают суть продукта и не знают, в каком направлении его развивать. Им нельзя бездействовать, потому что их тогда поувольняют за ненадобностью. Приходится заниматься имитацией бурной деятельности.
Maximum Viable Product
Чтобы остановить деградацию продукта, есть вариант установить «ограничение сверху», то есть зафиксировать его максимальную функциональность (Maximum Viable Product). Это «максимально жизнеспособный продукт», по аналогии с минимально жизнеспособным прототипом.
Идея в том, что дополнительные функции иногда ухудшают софт, а не улучшают его. Проблема ведь не только в захламлении интерфейса, но и в увеличении кодовой базы, затруднении поддержки, появлении новых багов, общем ожирении программы. Самый лучший софт — это быстрый софт. Все мы знаем примеры великолепных программ, которые на порядок быстрее и удобнее своих аналогов (Sublime Text, IrfanView, Figma и др.).
А главное — берегитесь инициативных менеджеров с кучей идей. Эти ребята способны развалить самый успешный проект.
Зачем на всех сайтах чат-боты?
Всё больше сайтов добавляют к себе «Виртуального консультанта» — тупого чат-бота, который появляется через Х секунд после загрузки страницы (если страница открыта достаточно давно и вы якобы не можете справиться без посторонней помощи). Это ещё одна новомодная игрушка. Она обычно выскакивает в углу с примерно таким вопросом: «Здравствуйте! Меня зовут Татьяна! Чем могу вам помочь?».
В большинстве случаев она совершенно не нужна. Мне не хотелось ни с кем разговаривать. Я ведь не звонил по телефону, а именно поэтому открыл сайт. Обычно такой чат-бот свидетельствует только об одном: сайт начал какую-то маркетинговую кампанию и хотят что-то впарить.
Грустно читать истории операторов бота для аренды жилья типа «Как я стал чат-ботом». Они видят, как бот бессильно пытается помочь клиентам, хотя это невозможно даже живому человеку, потому что проблемы неразрешимые. Но таких ботов специально программируют на общение обтекаемыми фразами, потому что нельзя сказать «Нет». Шаг вправо или влево — и он сбивается со сценария. Оператору приходится брать управление на себя и говорить от лица бота.
При виде назойливой Татьяны первое желание — закрыть страницу и добавить её в блокировщик. Иначе «консультант» будет выскакивать при каждой перезагрузке страницы.
Теоретически чат с ИИ (особенно на основе современных движков ChatGPT) действительно может быть полезен во многих ситуациях, тем более если он успешно проходит тест Тьюринга и обладает всей необходимой информацией. Но такое время пока не наступило.
Ну а сейчас выскакивающее окно чат-бота по назойливости можно сравнить разве что со всплывающей рекламой и спам-рассылками.
Когда софт свернул на туда?
Персональный компьютер должен был расширить возможности человеческого интеллекта и разума, как «велосипед для мозга». С помощью компьютеров, смартфонов и интернета хомо сапиенс вроде должен был выйти на следующую ступень эволюции.
А что на самом деле? Иногда кажется, что высокие технологии в первую очередь используются против людей. Интернет стал инструментом авторитаризма, пропаганды и промывки мозгов. Смартфоны используются для слежки. Сайты жиреют, а софт обвешивается функциями и тормозит. Где же мы свернули не туда?
Мы как будто забыли о том, что компьютерный код нужно писать в первую очередь для чтения людьми, и только во вторую очередь для исполнения машинами.
"Programs must be written for people to read, and only incidentally for machines to execute." — Harold Abelson
— Programming Wisdom (@CodeWisdom), Twitter, June 23, 2021
По словам Гарольда Абельсона (основатель Creative Commons и FSF), любой новый код обязан частью своего существования кому-то другому и участвует как звено в цепи диалога. Веб-приложение находится в диалоге с языком и фреймворком, на котором оно написано, а его структура опосредована характеристиками TCP/IP и HTTP. Даже в процессе написания кода мы находимся в постоянном диалоге с компьютером, в среде программирования с подсказками, «копилотом», StackOverflow и гуглом (а сейчас и ChatGPT подключился).
Любой язык программирования заимствует лексику и концепции из других языков, но в основном, конечно, английский язык является приоритетным. Таким образом, вся человеческая инфосфера взаимосвязана и развивается как единый живой организм. Красивая идея.
Поэтому и возникает вопрос: в какой же момент времени развитие этого организма свернуло не в ту сторону? Есть мнение, что большое количество инструментов приводит к решению проблем оптимальным способом для конкретного инструмента, а не по-настоящему наилучшим способом.
То есть язык (фреймворк, платформа) словно заставляет разработчика писать код таким специфическим образом, импортировать определённые объекты. Программирование стало похоже на сборку конструкции из готовых кирпичиков.
Есть ещё предположение, что в какой-то момент деньги стали не просто финансировать разработку ПО, а стали определять разработку, превратившись в главную причину, зачем вообще всё делается. Вы спросите, какая польза от этого нового проекта? Вам ответят: конечно, деньги, что же ещё? Главная функция приложения — делать ещё больше денег.
Если мы хотим полезные и производительные приложения без тёмных паттернов, лишних функций, рекламы и развода на деньги — нужно как-то изменить социальные стимулы. Когда корпорациям выгодно извлекать прибыль из слабостей человека, а людям — направлять ресурсы на бесполезный майнинг, то, наверное, механизм стимулов работает некорректно.
Радикальные анархисты могут сказать, что фундаментальная проблема в самом капитализме. Но пока мир не придумал ничего лучшего, придётся искать варианты внутри этой модели. Например, опенсорс и копилефт неплохо проявили себя внутри неё. Значит, не всё потеряно. Только им не хватает какого-то стимула, чтобы добро стало выгодным.
Если человек по своей природе — доброе существо, то хорошие поступки приносят ему радость, а боль окружающих вызывает страдания. В принципе, эта естественная природная система может работать и в экономике. Добро должно приносить бизнесу прибыль, а зло — приводить к убыткам. Теоретически, так должен работать правильный капитализм будущего в глобальном масштабе. А если что-то работает некорректно, то нужно разобраться, где мы свернули не туда. И в следующий раз не допускать таких ошибок. Может быть, рано или поздно получится построить правильную систему.
Анатолий Ализар (Хабр) по заказу RUVDS