«Критика может быть неприемлемой, но она необходима. Она выполняет ту же функцию, что и боль в организме человека. Она обращает внимание на нездоровое положение вещей».
Уинстон Черчилль
Абсолютно всё заслуживает адекватной конструктивной критики, чтобы оно становилось лучше. Это относится и к ПО. Возможно, именно программное обеспечение является определяющей ценностью нашего времени. Так почему же вокруг ПО нет культуры критического анализа?
❯ Хейт, обзор и критика
Не путайте критику и хейт. Если кто-то говорит о чём-то: «Это отстой» — то это хейт. Если же кто-то говорит: «Это отстой, вот почему, и вот как это исправить» — то это уже критика, и она исходит из желания изменить объект критики к лучшему.
На сегодня современная техническая журналистика выглядит так: новостные репортажи, обзоры гаджетов, профили компаний и основателей, авторские эссе, журналистские расследования, отраслевые дайджесты, личные блоги, комментарии на тех-форумах и выпуски GitHub. Это неполный каталог, но тем не менее, здесь обнаруживается любопытный пробел: отсутствует критика, в которой программное обеспечение подвергалось бы анализу.
В таких медиа, как кино, театр, телевидение и музыка, качественная критика является ожидаемой и поощряемой. Люди обращаются к критикам за советами: что посмотреть, что послушать, куда пойти и почему. Касаемо ПО такая культура пока ещё не развилась. Конечно, есть веб-сайты с обзорами и отзывами пользователей, но главный вопрос, который они задают о программном обеспечении, звучит так: «Работает ли оно?», а не «Должно ли оно быть?». При поиске и покупке программного обеспечения именно обзоры и отзывы являются распространёнными источниками информации. Но обзоры не должны быть решающими при выборе нового программного решения.
Отзывы не всегда соответствуют действительности. Начнём с того, что клиент/пользователь не всегда прав, а отзывы показывают только одну сторону истории. Кроме того, мотивация отзыва не всегда ясна. Это может исходить из искреннего восторга. Но это также может исходить из меркантильных мотивов. Например, на сайтах с обзорами есть серьёзная проблема с компаниями, покупающими положительные отзывы. То есть покупка поддельных положительных отзывов — обычная практика. За это клиент получает скидку на следующую покупку, подарок или бесплатную доставку по почте и т. д. за оставленный отзыв. Компании с большим бюджетом могут тратить деньги на создание множества поддельных отзывов. Они также могут позволить купить обзор у известного блогера.
Вся эта лицемерная деятельность служит для привлечения повышенного внимания к крупнобюджетному бренду. Больше клиентов привлекают продукты, получившие широкое освещение и отзывы. Ведь чем больше отзывов, теоретически, тем больше надёжность. Это увеличивает разрыв между крупными предприятиями и их более мелкими конкурентами. Вместо того, чтобы полностью доверять корпоративным сайтам отзывов, надо искать баланс положительных и отрицательных сторон.
❯ Артефакт современности
В технологической критике нет ничего нового. Современная технологическая критика восходит к Карлу Марксу и его современникам. Сегодня известны такие современные технические критики, как Джарон Ланье, Евгений Морозов и Эллен Ульман. Но критика программного обеспечения — это не то же самое, что критика технологий. Если в XVIII и XIX веках наблюдался подъём художественной литературы, а 1920-е годы были зарезервированы для джазовой музыки, то программное обеспечение является определяющим артефактом нашего времени. Так где же критики программного обеспечения?
Сейчас на YouTube выходят тоннами обзоры фильмов. Их сейчас так много, что обзоров больше чем самих фильмов. Разные СПГС, сравнения и аналогии, компиляции, треш-обзоры и много чего другого. Их снимают любители-энтузиасты, без профильного образования в области кино. И они иногда разбираются в фильмах не хуже профессиональных кинокритиков. То же самое можно сказать про обзоры книг, автомобилей или архитектуры. Есть конечно и обзоры ПО, но они, как правило, о том как работает та или иная программа, как устранить неполадки и разного рода лайфхаки.
Почему не возникла культура критики программного обеспечения? Простое объяснение состоит в том, что форма ещё молода. Книги, поэзия и архитектура существуют уже тысячелетия. Автомобили и фильмы существуют уже более ста лет. Однако современному программному обеспечению всего несколько десятков лет. Кроме того, форма недостаточно теоретизирована — не с инженерной, а с гуманитарной точки зрения. Если бы мы сравнивали это со зданиями, то это как если бы существовала традиция гражданского строительства без архитектурной теории. Что сложнее: построить здание или разработать ПО? Непростой вопрос. Разработка программного обеспечения может быть такой же сложной, как строительство здания. На самом деле словарь программной инженерии имеет много параллелей с архитектурой. Например, тех, кто принимает решения при проектировании высокого уровня ПО, называют архитекторами программного обеспечения. Многие концепции также являются общими. Возьмем разницу между реализацией интерфейса в программном обеспечении. Точно так же все лифты имеют один и тот же интерфейс — нажатие кнопки вызова лифта, ожидание лифта, открытие дверей, нажатие кнопки этажа и т. д. — но их реализации — гидравлические, редукторная тяга, без машинного помещения — различаются.
Другая очевидная причина того, что программные критики не появились, заключается в том, что между гуманитариями и инженерами мало общего. А учитывая, насколько прибыльным может быть профессия инженера-программиста, не так много стимулов становиться программным критиком. Но критик программного обеспечения может выявить ключевые проблемы ПО и установить рациональное решение. Хорошая критика может заставить пользователей полюбить программное обеспечение, которое они ненавидели, и возненавидеть ПО, которое любили.
Итак, если фильмы, автомобили и здания заслуживают критического анализа из-за их сложности или уникального дизайна, не следует ли современному программному обеспечению также квалифицироваться как объект критики? Браузер Chrome, охватывающий все уровни абстракции — от низкоуровневых сетевых протоколов до оптимизации памяти, функций продукта и элементов пользовательского интерфейса — наверняка не менее сложный объект, чем Tesla. А многие пользователи эстетизируют ядро Linux точно так же, как коллекционеры часов эстетизируют Rolex.
❯ Цель критики
Как выглядит критика программного обеспечения? Грубая смесь обзора продукта в форме литературной критики? В самой базовой форме, да. Но это гораздо больше. Критик анализирует предмет с нескольких точек зрения: технической, исторической и философской.
Вместо того, чтобы говорить абстрактно, давайте выберем Google Docs в качестве примера. Критик программного обеспечения может начать с некоторой необходимой культурной истории письменного труда, затем предоставить немного технической истории с объяснением того, как технология операционной трансформации (OT) Google Docs проложила путь для инструментов совместной работы в реальном времени в других областях, таких как Figma для дизайна или Colab для программирования. И как исследования бесконфликтного реплицированного типа данных (CRDT) могут сделать этот режим работы режимом совместной работы по умолчанию в будущем. И что это означает в культурном и социологическом плане.
Какой не должна быть критика программного обеспечения. Без «водянистых» рассуждений, без систем оценок (по 10-бальной шкале и т.д.). Это также не место для партнерских ссылок. Никакой рекламной кампании, мотивированной монетой, или тонко замаскированного пиара. Программный критик может находиться в любом диапазоне от технологического энтузиазма до оптимизма/скептицизма/пессимизма, но должен избегать крайностей, а это означает, что он должен ловко проплывать между Сциллой технического утопизма и Харибдой луддизма, чтобы просвятить широкий круг читателей.
И, конечно же, не надо забывать о захватывающей прозе! Никакого текста сгенерированного языковой моделью и без графомании. Без сверхдезинфицированной — а значит, стерилизованной — технической прозы, потому что это всё таки не README.
Итак, кто может быть программным критиком? Сказать, что все критикуют, было бы банальным клише, но много крутых разработчиков не имеют соотвествующего диплома. Технические знания важны, но необходима и техническая грамотность. Критики программного обеспечения должны уметь представлять себе, как критиковать серверные фреймворки и операционные системы, которые не имеют визуальных элементов.
«Как вызвать расстройство личности? Постоянная критика и недостаток любви».
Фаина Раневская
Общеизвестно, что великие книги и идеи, извлеченные из них, помогают нам понять общество, в котором мы живём, лучше, чем наш собственный повседневный жизненный опыт. Но то же самое можно сказать и о технологиях. Вполне возможно, что мы не можем прийти к полному пониманию нашего времени без определённых программ. Следовательно, жизненно важно критическое понимание программных продуктов, на которые мы тратим больше времени каждый день, чем на учёбу, тренировку или заботу о близких.
Есть определённая социальная — и можно сказать, моральная — функция критики, которая применима и к критике программного обеспечения. Это «служебная профессия», преследующая моральные и практические цели. Интеллектуальный обмен между изобретателями, потребителями и критиками обогатил экологию всех форм искусства. И одна из самых благородных ролей критика состоит в том, чтобы выделять перспективных «художников» или тех, кто несправедливо живет в безвестности. Точно так же, как влиятельный критик может привлечь внимание к артхаусному фильму или сборнику эссе от самиздата, критик программного обеспечения может обратить внимание на программистов-индивидуалистов, которые не получают выгоды от пресс-релизов Big Tech.
Изучая их работу, возможно, мы сможем узнавать разработчиков ПО с открытым исходным кодом, без неустанной работы которых наша инфраструктура рухнет. Чтобы талантливые независимые разработчики, создающие продуманно разработанные приложения, но находящиеся во власти App Store, получили признание.