Апп-покалипсис сегодня. Поляризация крайностей
В чатике токсов openbsd скинули ссылку на отличный пост в блоге Аркана - про принципы, которыми руководствуются в проекте.
Некоторые из этих принципов, имхо, достойны быть переведены на русский.
Так называемые, ‘смартфоны’ в свою ‘догнать и перегнать j2me-телефоны’ эпоху, сделали правильно несколько вещей. Одной из таких вещей было появление ‘приложений’(app); Простые, маленькие инструменты, решающие одну конкретную задачу. В то же время, эти приложения плохо взаимодействовали друг с другом (отсутствие сочетаемости) и, как следствие, было трудно комбинировать их для создания новой функциональности (отсутствие композиционности). В широком смысле, экосистема выродилась в прослойку, провожающую пользователя до приложения конкретного сервиса, нежели что-либо ещё.
На десктопе, пользовательские интерфейсы встречаются, преимущественно, трех типов. Первый из них - это приложение “в себе”: сложные изолированные окружения, которые лучше всего представить как машину внутри машины (другими словами - виртуальная машина). Например, веб-браузер (Electron). Встреча с ними - неизбежна, кроме как вы не совсем крайний аскет.
Второй тип - на другом полюсе спектра сложности, это относительно простые инструменты текстовой обработки основанные на конвейерах и фильтрах, такие как ‘awk’ и ‘grep’. А также чуть более интерактивные терминальные пользовательские интерфейсы (TUIs) - подмножество интерфейсов командной строки (CLIs). Они весьма ограничены своим наследием, выросшим из последовательных строк (serial lines) и терминалов c символьной графикой.
Последний, третий тип - это бескрайнее пространство между предыдущими двумя, многомиллионные строчки UI-библиотек. Они обладают такой же сложностью, как и виртуальные машины, и не менее устаревшим наследием, чем терминалы.
Нет чёткой границы между этими категориями. Браузер полагается на ui-библиотеки для интеграции с операционной системой, чтобы потом переопределить большую их часть в собственном стиле. Терминальные интерфейсы полагаются на виджеты из, буквально, проклятых1 абстракций в поиске убежища от взрыва из прошлого - терминальных протоколов.