Как стать автором
Обновить

Комментарии 15

Думаю, что высказанное здесь мнение не будет популярным, но положения дел это не отменяет.
Итак, можно собрать приложение Qt под WebAssembly. И это действительно хорошо.
И собрать можно не только Qt, а практически всё. И это тоже хорошо.
Вот только нужно ли это делать?

Когда появился AsmJS — это было хорошо. Люди хотели более высокопроизводительный JavaScript.
Когда стандартизировали WebAssembly — тоже было хорошо, ибо кроссплатформенная высокопроизводительная виртуальная машина вместо гораздо более медленного интерпретатора.
Когда стали впихивать безо всякой нужды фреймворки внутрь этой виртуальной машины — тут-то и стало плохо.
У вас есть кроссплатформенный фреймворк, который нативно работает на любой платформе.
У вас в браузере есть HTML, на котором можно сделать полный функциональный аналог GUI, а при большом желании даже можно без JavaScript.
Посмотрите на примеры по ссылке в статье.
Элементарный графический редактор в стиле Paint занимает 350 Мб памяти и нагружает CPU на 20 % просто когда по канвасу водишь мышью (даже не рисуешь).

Если Qt под WebAssembly предлагается под видом «Нет, ну вы видели, оно работает!!!» — то в этом нет ничего плохого.
Если же под видом «О, а давайте всё делать на Qt, да внутри виртуальной машины, да ещё внутри браузера» — то это явно поворот не туда.

Наверное такие статьи пишут производители оперативной памяти

Просто адепты JavaScript активно впихивают разработку на десктопе, а адептам десктопов нужно чем-то ответить.
Но в целом, если нужно быстро портировать десктопное приложение в веб, то вполне себе неплохой вариант — бизнес доволен сроками, ежики кактусами пользователи возможностями.

Для меня это хорошее подспорье для внутренних редакторов, каких-то тулов, но доступное извне без всяких переделок. Доделал чуток чтобы по сети работало и вот у тебя веб версия. Не нужно нанимать никаких других разработчиков, даже с косячным внешним видом и прочими недостатками для внутреннего пользования — это просто отлично.

плюсанул бы, но не могу

Осталось теперь собрать приложение на Electron в web-assembly, и круг замкнётся.
А, нет, прошу прощения — внутри должен быть QT webview, который отображает страницу с WebAssembly, где должно быть приложение на electron
НЛО прилетело и опубликовало эту надпись здесь
… или рекапчу :D

А что, идея — скомпилировать chrome в wasm, и уже в нем открывать свой сайт. Никаких полифилов и проблем с кроссбраузерностью!

НЛО прилетело и опубликовало эту надпись здесь
Великолепно

превью


Интересная технология, но не понятно назначение. Нет бы сделать упрощенный HTML, я бы назвал его AHTML (application html), специально под нужды веб-приложений, да порезанный css для него без всяких там float, а так же возможность делать wasm расширения для фреймворков (условно говоря, собственный многопоточный рантайм для условного реакта/ангулара), чтобы js обрабатывал только бизнес-логику, а не весь процесс рендеринга, так все хотят втянуть рантайм огромных кросс-платформенных фреймворков с собственным движком рендеринга, т.е. сделать браузер в браузере.


Осталось портировать под wasm эмулятор андроида и вместо веб-приложений запускать андроид-приложения в браузере под wasm.

Проблема вся в том, что далеко не все поддается переводу в wasm. Связано это как с различными типами данных, так и рядом ограничений технологии на сегодня. Назначение можно посмотреть внимательно https://github.com/msorvig/qt-webassembly-examples вот здесь папка slate — примитивный графический редактор, подготовленный для сборки в wasm. Я собирал на mac, запускал, работает.

НЛО прилетело и опубликовало эту надпись здесь

Когда то технология будет доведена «до ума» раз ее придумали то для чего то, а не просто «у меня получилось собрать Photoshop под браузер». Это одно из применений. А так очень много библиотек типа sqlite, libjpeg, imagemagick пересобраны в wasm для работы в node.js. Видно будет в будущем.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории