- PVSM.RU - https://www.pvsm.ru -

Невменяемый, необъятный масштаб браузеров

Увидев вот эту публикацию [1] про браузерные войны, я хотел было написать альтернативное наблюдение за тем, как мы докатились до такой жизни. Но Дрю ДеВолт уже всё сказал за меня.

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

С помощью wget я скачал все 1217 спецификаций W3C [2], опубликованных на текущий момент1. Существенная часть из них должна быть реализована в браузере, чтобы современный веб работал. Я подсчитал объём этих спецификаций. Как думаете, насколько сложен современный веб?

[1] По состоянию на 2020-03-18. Без учёта спецификаций WebGL, за которые отвечает Khronos.

Суммарно, на сегодня, каталог спецификаций WC3 содержит 114 миллионов слов. Если взять стандарты C11, C++17, UEFI, USB 3.2, и POSIX, добавить к ним все 8754 опубликованных RFC, а также всё из списка самых длинных литературных произведений [3] на Википедии — у W3C всё равно на 12 миллионов слов длиннее2.

[2] Оставшееся место можно легко заполнить с помощью 5038 страниц руководства Intel по архитектуре x86. Только придётся его скопировать где-то раз шесть.

Мой вывод: новый веб-браузер создать невозможно. Сложность просто зашкаливает. Создание нового браузера по трудоёмкости сравнимо с отправкой человека на Луну или созданием ядерной бомбы с нуля.

  • Невозможно реализовать веб корректно.

  • Невозможно реализовать веб безопасно.

  • Невозможно реализовать веб в принципе.

Создать принципиально новый браузер, чтобы конкурировать с Гуглом или Мозиллой? Да это настолько глупо, что вас тут же спросят, есть ли в нём нескучные обои. Последняя серьёзная попытка — Servo — понемногу превратилась в наполовину инкубатор для рефакторингов Файрфокса, наполовину в развлечение для скучающих инженеров Мозиллы, где они могут безопасно поиграться с никому не нужными технологиями. Жизнеспособный современный браузер? Что это? Кому это надо, когда у нас есть WebVR! Круто же, да? Да?

Последствия очевидны. Браузеры — это наиболее сложный и тяжёлый софт, который люди запускают на типичных потребительских компьютерах. Все знают, как хорошо браузеры жрут оперативку, процессор, батарейку, и т. д. В одних только браузерах найдено более 8000 уязвимостей3.

[3] Количество CVE в базе cve.mitre.org по ключевым словам «firefox», «chrome», «safari», «internet explorer».

Из-за монополии, гарантированной поистине космической стоимостью создания альтернативы, браузеры перестали служить пользователям и теперь служат своим создателям. Файрфокс тянет с собой всё больше рекламы, телеметрии, и обязательных плагинов. Хром используется Гуглом для наблюдения за вашим поведением в интернете, а также для насаждения вредоносных технологий вроде DRM и AMP. Браузерная дуополия становится всё сильнее вместе с тем как Microsoft отказывается от Edge, а WebKit давно остановился в развитии.

Исходный код большинства браузеров открыт. Обычно если open-source проект творит какую-то дичь, то сообщество может его форкнуть, чтобы создать альтернативу. Однако, для браузеров это не сработает. W3C печатает в среднем 200 новых спецификаций каждый год — это 4 миллиона слов — как новый POSIX каждые 4-6 месяцев. Покажите мне команду, которая сможет угнаться за всем этим развитием — ещё и реализовав в срок ту гору спецификаций, что накопилась уже сейчас.

Браузерные войны затянулись. Давным давно следовало начать состязаться в стабильности и производительности браузеров, вместо производительности команд разработки измеряемой в фичах за спринт. Вы долбанулись. Астанавитесь!

Прим.: Если вам интересна методология подсчёта слов в спецификациях [4], то её у меня есть.

Автор: ilammy

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/361377

Ссылки в тексте:

[1] вот эту публикацию: https://habr.com/ru/post/541180/

[2] спецификаций W3C: https://www.w3.org/TR/

[3] списка самых длинных литературных произведений: https://en.wikipedia.org/wiki/List_of_longest_novels

[4] методология подсчёта слов в спецификациях: https://paste.sr.ht/~sircmpwn/13c1951014a256e9f551296a129bf6d10e9303dc

[5] Источник: https://habr.com/ru/post/541196/?utm_source=habrahabr&utm_medium=rss&utm_campaign=541196