Здравствуйте, vdimas, Вы писали:
_>>Т.е. браузер действительно уже стал платформой (как ОС), но буквально несколько лет назад и платформа эта пока крайне убогая и ограниченная. Хотя видно, что идёт активное развитие и когда-нибудь все нужные API добавят.
V>В wasm добавляют так же активно ср-ва работы вне браузера, т.к. это просто VM.
V>https://github.com/bytecodealliance/wasmtime/blob/main/docs/WASI-intro.md
V>Т.е., можно использовать wasm как нейтивную VM-абстракцию от конкретной ОС.
V>(чего не хватает проекту LLVM и вряд ли там будет реализовано)
Там кстати была весьма забавная история.
Изначально авторы wasm не планировали никаких конкретных практических применений помимо браузера. Но при этом они были очень хорошими профессионалами и максимально запланировали и абстрагировали этот вопрос с общетеоретической точки зрения. Т.е. самого первого документа рассматривалась идея множественного применения в совершенно разных контекстах, но при этом ни одного реального практического примера кроме браузера не было. Так оно и работало какое-то время, причём даже после выпуска в релиз. Были какие-то там разговоры о других применениях, но дальше них дело не зашло.
И тут неожиданно проявили инициативу JS разработчики. Они распробовали как классно иметь возможность запускать эффективный код в браузере — там открылся целый класс новый проектов, которые раньше были просто недоступны. А сейчас достаточно попросить C++ программистов сделать им библиотечку с нужным алгоритмом и можно спокойно просто вызывать её из своего кода, получая сумасшедшую (по меркам JS) эффективность. Так вот, часть из этих программистов были фуллстек и они захотели иметь те же плюшки и на бэкенде. В итоге сообщество напряглось и очень оперативно родило полную поддержку wasm в node.js. Ну и соответственно встал вопрос о доработке отсутствующих API. Кстати, тут надо заметить, что авторы wasm опять же делают всё очень профессионально и тут тоже создают чётко абстрагированный интерфейс, а не специально под node.js. Т.е. всё развитие по прежнему идёт в правильном изначальном русле теми же спецами, но толчком к активному развитию WASI стал запрос из node.js, что довольно иронично. )))
V>Думаю, в пределе это приведёт к тому, что не браузер будет эдакой виртуальной ОС, а именно wasm-машинка, где браузер будет пользоваться сервисами той.
Вряд ли. Т.е. сервис такой наверняка появится (собственно можно будет из текущего node.js выдрать js
и предустановить во все ОС — получится именно такой сервис), но он наверняка будет отдельно от браузера. Потому что у браузера другая модель безопасности, в которой предполагается враждебность запускаемого кода и соответственно максимальная песочница. Т.е. я думаю, что будет параллельное развитие браузерных движков wasm и так сказать системных.
V>Это полезно даже для облака, т.к. wasm-приложениям будет немного пофик, какая именно OS установлена на облачной ноде.
Да, и от ОС и от архитектуры процессора. Причём там уже подъехала поддержка SIMD (пример тестов
https://robaboukhalil.medium.com/webassembly-and-simd-7a7daa4f2ecd). В общем это безусловно технология будущего.