habrahabr

Большинству людей плевать на качество софта

  • среда, 16 июля 2025 г. в 00:00:10
https://habr.com/ru/companies/ruvds/articles/925028/

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

Но у этой деградации есть естественная причина, очень простая. Дело в том, что большинству людей по большому счёту наплевать.

Куда пропали маленькие программы?

Кто-то может спросить, куда пропали маленькие программы? Ведь раньше были нормой полнофункциональные приложения по 100−200 КБ, что с ними случилось? В раздувании софта во многом виноваты фреймворки: Electron, React Native и проч.

Electron
Electron

А почему фреймворки стали популярными? Причина в появлении смартфонов. Тогда разработчикам понадобилось писать несколько версий нативных приложений под разные ОС, а Electron стал решением проблемы.

Как написано в истории Electron, реальным прорывом Electron стало совмещение Node.js и Chromium: «Это решение позволило JavaScript взаимодействовать напрямую с нативными возможностями ОС, в то же время отрисовывая браузерный UI, тем самым обеспечив крайне желанную для многих веб-разработчиков комбинацию».

Такая структура облегчила релиз десктопной версии веб-приложения, обеспечив также автоматическое обновление и упростив процесс разработки UI. Но она также породила и известные проблемы:

  1. Раздувание программы, массивное потребление памяти и CPU. Каждое приложение Electron содержит собственный экземпляр Chromium:

  1. Снижение производительности.

  2. Ухудшение стабильности.

Вот так мы и пришли к тому состоянию, в котором находимся сейчас.

К счастью, для большинства обычных пользователей все эти проблемы не стали критичными. Они привыкли к нестабильной работе приложений, а тормоза железа восприняли как данность. Большинство обывателей просто не понимает, что это ненормальная ситуация, поэтому не жалуются.

Долговременное ПО

В наше время ПО зачастую предоставляется как услуга, которая деплоится «непрерывно» (CD), завёрнутое в бесчисленное количество автоматизированных тестов (CI, непрерывная интеграция). Такой подход позволяет надеяться, что новая версия будет хоть как-то работать.

Однако существует огромный мир, где непрерывные изменения считаются злом. Наоборот, там люди ценят надёжность и детерминированность работы программы. Софт, который управляет (ядерными) электростанциями, кардиостимуляторами, самолётами, мостами, тяжёлой техникой. В общем, где важна безопасность. Такой долговременный софт разрабатывается на десятилетия вперёд. Все изменения тщательно прописаны и заранее анонсированы.

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

Зависимости
Зависимости

Нужно тщательно обдумать, какие зависимости сохранят свою актуальность через 10-20 лет (в соответствии с эффектом Линди), а потом избавиться от лишних зависимостей и сервисов, которые использует программа. Например, облачные сервисы. Всё это может исчезнуть в любой момент.

Для максимальной долговечности ПО рекомендуют выбирать самые скучные технологии, писать максимально скучный и простой код, как эта машина:

Чтобы прожить долго, программное обеспечение также следует хорошо документировать, и опубликовать исходный код. Это также определённая гарантия качества ПО — многим компаниям требуются месяцы или годы, чтобы подготовить код к публикации. Это значит, что они его очищают от лишнего, рефакторят и упрощают, чтобы получился чистый код, который не стыдно выкладывать. Таким образом, сам факт публикации в открытом доступе улучшает качество кода.

Долговременный софт (long term software) — это противоположность консьюмерскому ПО для массового рынка. Некоторым нравится создавать именно такие, надёжные, предсказуемые и стабильные программы. Но если мы делаем потребительский софт, то правила другие. Массовому пользователю не так важно качество программ.

Качество — не главное?

Как ни печально, но массового потребителя не волнует качество программ. Это относится не только к ПО, но и к другим сферам жизни. Например, взять фотографию. Только очень редкие пользователи потратят время на чтение учебников по фотографии и композиции, а потом будут выстраивать кадры по всем правилам гармонии, с сеткой, вручную корректируя баланс белого и выдержку, чтобы в итоге получился идеальный, красивейший кадр.

Фотографии Пола Кларка, paulclarke.com
Фотографии Пола Кларка, paulclarke.com

Нет, большинство из нас просто наводит камеру на объект — и нажимает кнопку, особенно не волнуясь за качество. Снимок может быть без фокуса, с неуравновешенной композицией, загромождённым фоном, неправильной центровкой, неидеальным освещением (недостаток света или пересвет с жёсткими тенями) и другими изъянами. Неважно. Снял, запостил — и побежал дальше.

Обычные люди не будут анализировать и обсуждать недостатки каждой фотографии — они их даже не заметят. Это удел профессиональных фотографов. Точно так же профессиональный дизайнер сразу заметит изъяны на чужих веб-сайтах: отсутствие клавиатурной навигации, плохой кернинг, отсутствие воздуха вокруг иллюстраций и десятки других недостатков. Но 99% пользователей это просто не волнует, потому что никак не влияет на них.

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

Дизайнер Джек Грёцингер (jackg.org) адаптировал своё приложение новым моделям айфонов, в том числе доработал дизайн кнопок (справа — новая версия)
Дизайнер Джек Грёцингер (jackg.org) адаптировал своё приложение новым моделям айфонов, в том числе доработал дизайн кнопок (справа — новая версия)

Есть отличное эссе Уилла Тавлина под названием «Небрежный просмотр. Почему Netflix выглядит именно так» («Casual Viewing. Why Netflix looks like that»). В нём автор справедливо критикует модель Netflix по производству огромного количества низкокачественного контента для неприхотливой аудитории, которая смотрит фильмы в фоновом режиме. Например, одно из требований Netflix гласит, что главный герой на экране должен всегда вслух озвучивать, что он собирается делать.

Творческие люди в ужасе от эстетики, плохих сценариев и полного отсутствия творческого таланта. Все фильмы и сериалы кажутся посредственными, а принципы Netflix идут вразрез с традиционными техниками театрального искусства и кинематографа («Show, don't tell»). Но простым людям это абсолютно не интересно. Они потребляют контент как ни в чём не бывало.

Специалисты по интерфейсам, дизайну и эргономике видят изъяны везде вокруг — в интерфейсе даже обычной кофемашины. У разных моделей — совершенно разные логики управления. Кнопки, сенсоры, дисплеи — всё расположено по-разному, без единого стандарта.

То же самое везде. Профессионалы видят недостатки, а обычные люди — нет. Они не разбираются в предмете, не знают контекста и не погружаются в профессиональную область по созданию этих объектов. Поэтому довольно спокойно относятся к низкому качеству всего вокруг: от продуктов питания до дизайна бытовых приборов.

Это действует и в программном обеспечении. Профессиональные разработчики сразу видят недостатки: разжиревший софт, раздутые мобильные приложения, тормозная 2D-графика на мощнейших CPU современных смартфонов, которые по производительности могут сравниться с суперкомпьютерами прошлого. Но обычные люди ничего этого не видят.

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

iPhone, iPad и iWatch под микроскопом
iPhone, iPad и iWatch под микроскопом

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

Точно так же обычные люди просто запускают программы — чтобы просто сделать то, что им нужно, они нажимают на кнопки приложений без всяких размышлений, что эти кнопки не совсем удобно расположены.

Возможно, профессионалам не стоит принимать близко к сердцу дерьмофикацию всего вокруг? Может быть, это нормальная тенденция для современного мира, где правит большинство?

Большинство людей на самом деле не хочет тратить когнитивную энергию на понимание подтекста. Например, политический подтекст фильмов про супергероев. Люди часто смотрят кино «в фоновом режиме», просто для получения удовольствия от выстрелов и т. д.

Если публика принимает посредственный масс-продукт, то зачем стараться? С точки зрения бизнеса невыгодно тратить лишние ресурсы на то, чтобы доводить его до идеала. Достаточно выдавать «минимально жизнеспособный продукт», который удовлетворит 99% потребителей.

Речь не о том, что большинство людей не требовательны или плохо образованы. Нет, просто все мы — дилетанты в абсолютном большинстве областей. Во всём, где не являемся специалистами.

Вот почему большинству людей плевать на качество софта.

Если точнее, людям на самом деле не плевать, но им обычно не хватает компетенций, внимания и времени, чтобы отличить качественный продукт от некачественного. Так что результат закономерный. Большинство ест безвкусные овощи и фрукты из супермаркетов, смотрит глупые фильмы, запускает приложения размером с гигабайт — и живёт своей счастливой жизнью, не беспокоясь ни о чём. И это бесконечный процесс. Люди привыкают ко всему, так что качество товаров/софта/масс-культуры постепенно деградирует естественным образом. Фильмы становятся хуже, еда менее качественной, а софт более глючным — возможно, всё это происходит по естественным причинам.

Периодические жалобы профессионалов по этому поводу чем-то напоминают старика Эйба Симпсона:

© 2025 ООО «МТ ФИНАНС»