Здравствуйте, c-smile, Вы писали:
_>>Ты забываешь про WebGL. )))
CS>WebGL это тоже canvas
CS>CS>gl = canvas.getContext('webgl')
CS>
Конечно, только рисуют в него совсем по другому. )
_>>Мы можем спокойно написать приложение на OpenGL, откомпилировать его emscripten и запустить в браузере. Причём это работало ещё и до wasm (с компиляцией в js), просто было не так эффективно по быстродействию. Хотя для определённых целей (включая сложные Qt интерфейсы, вроде таких http://vps2.etotheipiplusone.com:30176/redmine/projects/emscripten-qt/wiki/Demos) даже такого хватало. А теперь будет ещё намного быстрее.
CS>Только если WebAsm'у позволено обращаться напрямую к методам DOM. Пока — нет.
Зачем ему DOM, если ему доступен OpenGL в предоставленную canvas? ))) Ну точнее пока DOM ещё используется в какой-то степени снаружи (через js), для перехвата сообщений от мышки/клавы и пересылки их в wasm приложение. Но надеюсь это они доработают, придумав какой-то аналог API для обработки "оконных сообщений". А вот DOM для вывода информации в таких приложениях точно не нужен. )
CS>>>На самом деле WebAsm нужно расценивать как byte codes, а всю инфраструктуру как нечто очень похожее на среду JavaVM.
_>>Байткод бывает разный. Бывает JVM, а бывает LLVM. )
CS>JVM или LLVM — разницы в данном контексте нет. Эти байткоды напрямую к памяти обращаться не могут — sandboxing.
В быстродействие (ради которого wasm и придумали) разница очень принципиальная. ))) Что касается ограничений, то я ещё не смотрел детальную реализацию wasm, так что ничего сказать не могу. Но думаю что там всё реализовано достаточно эффективно, иначе бы просто во всём этом не было бы смысла. )))