LINUX.ORG.RU

А в чём смысл WebAssembly?

 ,


0

4

Вроде как смысл в скорости, но WebAssembly же места занимает дохрена, на мелкоскоростных 3g такой сайт вообще не откроется...

Сейчас попробовал mono-wasm «Hello World».

В инспекторе гугл хрома:

135 requests
21.0 MB transferred
42.1 MB resources

Нашёл ещё Qt5 пример: https://www.qt.io/web-assembly-example-qml-chart

Qt5 wasm тоже 21 мегабайт, почти как и mono-wasm:

69 requests
20.9 MB transferred
22.1 MB resources

Или WebAssembly нужно использовать без десктопных GUI библиотек? Объясните какой профит от wasm?

Update: Вот нашёл онлайн mono-wasm пример: https://playground.platform.uno/#hello-world

173 requests
8.3 MB transferred
51.4 MB resources

★★★★★

Последнее исправление: fsb4000 (всего исправлений: 3)

wasm не для gui придуман был.а для числодробления.

anonymous
()

Пока у меня лишь такое объяснение.

Те кто придумал собирать mono-wasm, java-wasm, или другой язык с жирным рантаймом в wasm поехавшие.

Те из маркетологов, кто предложил собирать Qt5 для wasm лишь хотели хайпа, смысла в этом ноль.

Чтобы был смысл нужно делать лишь отдельные функции на языках с «zero-cost abstraction» (читай С/С++/Rust), или если делать всё SPA на wasm, то использовать лишь стандартные возможности языка(и то обращая внимания на особенности платформы: https://rustwasm.github.io/book/reference/code-size.html#optimizing-builds-fo...) + по максимому использовать браузерное API.

Тогда wasm сайты будут сравнимы по размерам с js сайтами.

Вот что нашёл: https://github.com/rustwasm/wasm-bindgen/tree/master/examples/todomvc

rust: https://rustwasm.github.io/wasm-bindgen/exbuild/todomvc/

6 requests
404 KB transferred
1.4 MB resources

js: http://todomvc.com/examples/react/#/

16 requests
284 KB transferred
1.2 MB resources

Так как для С++ нет каких-то уже написанных либ специально для wasm, то есть C++ в равных условиях с Rust, то я думаю, что Rust реально лучший вариант для wasm.

fsb4000 ★★★★★
() автор топика

Чтобы сишные либы запускать не дожидаясь пока веб-стандарты оформят. Фактически у браузера уже есть доступ к USB девайсам, блютузу и даже к GPU (вулкан API) есть драфты. Так что через либы в браузере можно будет развернуться не дожидаясь пока слоупоки из w3c запилят нужную тебе либу в браузер.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от fsb4000

Те из маркетологов, кто предложил собирать Qt5 для wasm лишь хотели хайпа, смысла в этом ноль.

Если бы поддерживались виджеты, тогда можно было бы переносить гуишные легаси-приложения в веб. Но там только QML, на котором понаписать легаси еще не успели

annulen ★★★★★
()

А в чём смысл WebAssembly?

Не во всем он есть. Не везде он нужен.

wxw ★★★★★
()
Ответ на: комментарий от foror

спасибо за вариант использования.

fsb4000 ★★★★★
() автор топика

Чтобы можно было запилить альтернативный веб, сделав его совместимым со старым. Все строители «нового веба» и «dapps», правда, пока этого не просекли, потому каждый норовит сделать свой форк chromium'а.

ComradeMajor
()
Ответ на: комментарий от annulen

Huh? А это что?

https://www.qt.io/blog/2018/05/22/qt-for-webassembly-examples

// Ссылки как всегда на сайте Qt-разработчиков битые и не рабочие, но судя по:

http://example.qt.io/qt-webassembly/widgets/richtext/textedit/textedit.html A simple text editor, written with Qt Widgets. This example shows that you can also use Qt Widgets to create your web-deployed applications.

Оно там было. Я лично тыкал.

EXL ★★★★★
()

Заднеприводные где? В мобильном сафари васм очень не очень.

TooPar
()
Ответ на: комментарий от foror

Фактически у браузера уже есть доступ к USB девайсам, блютузу и даже к GPU (вулкан API) есть драфты.

Из последних новостей: в только что вышедшем Chromium 77 добавили «Serial API».

gag ★★★★★
()

Вроде как смысл в скорости, но WebAssembly же места занимает дохрена, на мелкоскоростных 3g такой сайт вообще не откроется...

У тебя дырявое восприятие. Во-первых ничего оно не занимает. Реализуй это на жабаскрипте и потом ты узнаешь что такое «занимает». Ты сравниваешь жопу и палец.

Во-вторых, что самое важное. Веб с хттп, хтмл, говнотекстом и прочим мусором - это протухшее плебейское говно. Очевидно, что все ресурсы грузятся один раз. А сеть должна существовать для передачи сырых данных, именно данных приложения.

Ты же на мобилке не имеешь проблем с тем, что у тебя приложения весят 20 метров? Нет. Так же и тут. Загрузил с норм итена 20 метров, а далее подобное приложение будет работать куда лучше веб-дерьма.

Третье - зачем тебе в броузере гуй-тулкиты десктопные? Они там работают чисто номинально. В васме пока что нету средств для нормальной реализации там нативного тулкита. А сами тулкиты не поддерживают wasm+browser как платформу.

Если это кому-то будет нужно + wasm допилят - всё тебе будет. К тому же даже сейчас 20метров для какого-либо говносайта - норма. Разницу между вебом и нормальной реализацией я сообщил выше.

anonymous
()
Ответ на: комментарий от fsb4000

В чё он так долго загружается? Визуально секунд 5.

anonymous
()
Ответ на: комментарий от fsb4000

Те из маркетологов, кто предложил собирать Qt5 для wasm лишь хотели хайпа, смысла в этом ноль.

Нет. Их собирают лишь для того, что-бы показать рабочесть васма. Никто тебе не предлагает wasm как полноценную платформу на qt.

Чтобы был смысл нужно делать лишь отдельные функции на языках с «zero-cost abstraction» (читай С/С++/Rust)
Rust

Чего? Меньше жри пропаганды.

Тогда wasm сайты будут сравнимы по размерам с js сайтами.

Полная чушь. Во-первых размеры никого не интересуют. Во-вторых wasm компактней текстовой веб-дристни.

Так как для С++ нет каких-то уже написанных либ специально для wasm, то есть C++ в равных условиях с Rust, то я думаю, что Rust реально лучший вариант для wasm.

Что ты несёшь? Никакого васма под говнараст нету. wasm-таргет есть под llvm - т.е. по определению на С++ под С++. говнораст - огрызок от llvm и васм там число случайно и вторично.

По поводу либ - ты жертва пропаганды. С++ не занимается обработкой хомячков в интернете. К тому же -это не либа, а говно. Это примитивная херня созданная специально что-ты тебя поиметь.

Есть emscripten, который на порядок мощнее. Там есть ffi. Данная поделка - просто огрызок, где тебе высрали dom-api + сборщик. Всё это есть. самое api тебе высрали потому, что в этом бездарном говне нельзя написать что-то адекватное.

К тому же для С++ есть вещи куда мощнее https://github.com/leaningtech/cheerp-meta

Правда всё это мало кому нужно. Одно дело реальные, применимые вещи, а другое дело мусорная пропаганда. Свять подобное говно ничего не стоит. Сделать что-то адекватное и нужно - сложно. В этом фундаментальная разница между нормальным языком и экосистемой и говном для школоты.

anonymous
()

Нужны специальные wasm-библиотеки. Заставить работать библиотеку, написанную для десктопа, не очень получиться.

P.S. Мои поделки на wasm обычно занимают 2-3Mb без WASM-GC и 1-2Mb после него.

trex6 ★★★★★
()
Последнее исправление: trex6 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.