Несколько дней назад вышел ролик Столярова и я вдруг вспомнил, что вообще на него подписан. Послушал про браузеры. И вот никак не могу перестать думать об этом.
Превращение сайтов в программы случилось не по причине охреневших программистов, а из-за стечения обстоятельств:
- Нет явной установки, высокая толерантность к ошибкам. Даже кривой сайт худо-бедно откроется.
- Свобода распространения: даже от классического веба можно отойти, загнав браузер через прокси в другую сеть (tor, i2p, zeronet и всякое такое). Никакой зависимости от магазинов приложений, никакой временной задержки, пока программа проходит модерацию (а ведь может и не пройти). Всё запускается сразу и «как есть».
- Кроссплатформенность: браузер есть везде, программа в большинстве случаев может быть запущена.
- Безопасность: в общем случае предполагается, что программа не может покинуть песочницу, благодаря чему у большого количества пользователей отсутствует страх открытия ссылок.
Веб-программа это: быстро, дешёво, наименее рискованно. А для пользователя ещё и удобно.
С самого начала браузеры эволюционировали в запускалку кроссплатформенных программ. И заметить это можно было давно — ещё в те времена, когда флеш обрёл бешеную популярность. Но почему-то до индустрии это не дошло до сих пор. Именно поэтому мы не имеем надёжной изоляции вкладок, контроля за кэшем и сетевыми запросами, лимитирования ресурсов, изоляции самого браузера от системы. А кроссплатформенные тулкиты не соответствуют первым двум требованиям. Причём из-за отсутствия второго пункта кроссплатформа в виде тулкитов это: долго, дорого, рискованно, а где-то и вовсе невозможно. И всякие snap не решают проблему, являясь всего лишь альтернативной точкой отказа, которая не примет ваше приложение, потому что кому-то там моча в голову ударила. Также подобная форма распространения не соответствует 1 и 4 пункту.
Я всё думаю, какой должна быть кроссплатформа, которую мы заслужили. И прихожу к выводу, что частично она уже есть: wasm. Осталось вынести его в отдельную программу, запускалку других программ, которая будет схожа с браузером по UX, но с явным поведением. Конечно, улучшение тюрьмы и лимитирование не гарантируют 100% безопасность, но ведь её не бывает. Обычные программы намного опасней из-за доступа ко всей системе, к тому же они не подгоняются под все 4 пункта.
Для разработчиков wasm тоже великолепен — он дарит свободу выбора технологий. Можно будет выбросить JavaScript, забыв попытки обернуть его в нормальный язык, как страшный сон. А для браузеров останутся именно сайты, с небольшим количеством скриптов, возможности которых можно будет урезать из-за снизившейся потребности в высокой нагрузке (например, отказаться от дырявой компиляции в натив).
Croco а ты что думаешь? Критиковать конечно интересно, но пора бы уже начать предлагать. Пока предложений нет, к ним точно никто не прислушается.