Разработчик оценил сложность современных браузеров

?v=1

Известный Linux-разработчик, соавтор графического протокола Wayland, пользовательского окружения Sway и почтового клиента Aerc, Дрю ДеВолт (Drew DeVault) провёл анализ спецификаций W3C, которым должны соответствовать современные браузеры.

Он скачал 1217 спецификаций с помощью wget и подбил статистику утилитой wc -w (количество слов). Оказалось, что весь текущий каталог спецификаций W3C составляет 114 млн слов. Для сравнения, объём спецификации C11 составляет 208 220 слов, а длина романа «Война и мир» — 188 088 слов.

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

  • Все IETF RFC (текстовый формат), 8754 штук: 57 716 641 слов
  • POSIX (формат HTML): 2 017 056
  • USB 3.2 (PDF): 872 395
  • UEFI (PDF): 659 580
  • C++17 (PDF, последний открытый черновик): 576 344
  • C11 (PDF, последний открытый черновик): 208 220
  • Intel x86 ISA (PDF): 2 312 414


Даже если сложить всё это вместе со списком самых длинных в мире литературных романов, то спецификации W3C всё равно окажутся больше на 12 млн слов.

Дрю ДеВолт предполагает причину, по которой мы дошли до такого состояния: «Начиная с первой браузерной войны между Netscape и Internet Explorer, веб-браузеры использовали свои функции в качестве основного средства конкуренции друг с другом. Эта стратегия неограниченного размаха и вечной ползучести функций безрассудна, и ей позволили продолжаться слишком долго, — пишет он. — Сложность веба просто неприлична. Создание нового веб-браузера сравнимо по своим усилиям с программой «Аполлон» или Манхэттенским проектом».

То есть не то, что невозможно реализовать безопасную или корректную поддержку веба, её невозможно реализовать вообще.

Создание собственного браузерного движка, чтобы конкурировать с Google или Mozilla на сегодняшний день — совершенно глупая затея. Последняя серьёзная попытка сделать новый браузер, Servo, стала «отчасти инкубатором для рефакторинга кода Firefox, отчасти песочницей для скучающих инженеров Mozilla, чтобы повозиться с никому не нужной технологией» (WebVR).

«Последствия этого очевидны. Браузеры — это самое дорогое программное обеспечение, которое работает на обычных компьютерах. Они печально известны тем, что используют всю вашу оперативную память, захватывают очередь процессора и ввод-вывод, разряжают аккумулятор и так далее. На браузеры приходится более 8000 известных уязвимостей», — пишет Дрю ДеВолт. Статистика CVE приведена с официального сайта cve.mitre.org по поисковым запросам «firefox», «chrome», «safari» и «internet explorer», в сумме.

Создать конкурентную альтернативу стало задачей непреодолимой сложности. Из-за этого разработчики браузеров почувствовали безнаказанность. Браузеры перестают работать как «агенты пользователя», а вместо этого начинают работать как агенты своих создателей: «Firefox заполняется рекламой, отслеживанием и обязательными плагинами. Chrome используется компанией Google как инструмент для того, чтобы эффективно отслеживать вашу историю открытых страниц и продвигать в экосистему вредоносные технологии, такие как DRM и AMP. Дуополия браузеров также только усиливается, поскольку Microsoft теряет Edge, а WebKit значительно отстаёт от своих конкурентов».

Конечно, браузерные движки распространяются с открытым исходным кодом. К сожалению, даже сделать работоспособный форк — практически невыполнимая задача. Дело в том, что количество спецификаций W3C растёт в среднем на 200 новых спецификаций в год. Это около четырёх миллионов новых слов. Грубо говоря, около одного POSIX каждые 4–6 месяцев. «Как возможно для новой команды идти в ногу с этим поверх того возмутительного объёма, который есть уже есть? — спрашивает ДеВолт. — Браузерным войнам позволили продолжаться слишком долго. Они давно должны были сосредоточиться на конкуренции с точки зрения производительности и стабильности, а не новых «функций». Это абсолютно нелепо, и это должно прекратиться».

© Habrahabr.ru