LINUX.ORG.RU
ФорумTalks

Qt6.2 + Webassembly = лавки чмафки

 , ,


0

3

Можно потыкать https://www.qt.io/qt-examples-for-webassembly

Культя опубликовала статью в которой показывает работу qt приложений в браузере https://www.qt.io/blog/qt-6.2-web-assembly-whats-new. Для сборки используется Emscripten, а позиционируют они это как возможность избегания установки приложений.

На данный момент в браузере могут работать вот эти модули

  • Qt Core
  • Qt Gui
  • Qt Network
  • Qt Declarative
  • Qt Svg
  • Qt Charts
  • Qt mqtt

Что позволяет писать вполне полноценные и полновесные приложения для браузера на Qt. По ссылке скрины выполняющихся программ в браузере. Хоть эта фича пока тестовая, но видно что qt серьёзно так настроилась, так как подобный рынок по сути пустой и можно серьёзно застолбится предоставив наверное первый настолько мощный инструмент для web приложений (ну не считая игровых движков)

Ах да, проприетарщина поганая =) Но кто знает может внезапно опять сменят политику партии. Пока что культя верным шагом идёт к своим проприетарным истокам.

★★★★★

Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)

Интересно, как у них сделана компиляция C++ кода для выполнения в браузере. C++ компилится в Web Assembly читоли?

Xintrea ★★★★★
()
Ответ на: комментарий от umren
Qt for WebAssembly is available under commercial licenses from The Qt Company. In addition, it is available under the GNU General Public License, version 3. See Qt Licensing for further details.

Платная лицензия как обычно. LGPL нет и не будет для любых новых проектов Qt Company.

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

делов там на платформовский плагин, за основу можно взять eglfs. со стороны qt обрезать линковку с несуществующими библиотеками, со стороны js реализовать набор функций которые куте дергал оттуда.

при желании можно и 5й куте точно также переселить.

проблема там в ином: локальной файловой системы в браузере нет. storage обрезан как еврей-ортодокс, можно извратиться через кэширование какое-нибудь, readahead и пр. но выглядит это зачем такая содомия?

мне jquery и ui хватит за глаза, я даже представить не смогу что можно захотеть от кути, чего нельзя сделать на js не сильно усложняя код. это всё ненужно, ненужно и еще раз ненужно.

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

Какое-то оно всё очень примитивное, для такого долгого времени загрузки. В целом, наверное, пользоваться можно… Но я бы как минимум подождал - даже демки не работают нормально.

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

локальной файловой системы в браузере нет

Есть. Как локальная песочная файловая система, так и доступ к диску хоста.

storage обрезан как еврей-ортодокс,

Есть целая объектная база данных.

можно извратиться через кэширование какое-нибудь

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

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

Эталонное ненужно. Работает медленно, плохо; на JS можно сделать куда лучше и проще.

CYB3R ★★★★★
()

А че, молодцы. В долбаном рынке нужно постоянно лавировать между возможностями.

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

Что именно работает медленно?

на JS можно сделать куда лучше и проще

Если бы там все было так хорошо, WebAssembly в принципе не возник бы. А так есть запрос того, чтобы работать в вебе на нормальных языках.

rumgot ★★★★★
()

Ну, с разморозкой вас.

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

Ну не любишь C++ есть другие, которые также можно в WebAssembly использовать.

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

Видимо по мнению ТС, новизна в том, что теперь «банановый», т.е. и в qt6.

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

Всё ещё лучше JS.

Не соглашусь. Для веб-скриптни JS лучше. Не идеал, но лучше. Для one-page приложений — оба хуже, но C++ более хуже. Для бэкенда JS может не подходить вообще, чисто по ресурсам.

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

До этого, году в 2012 или чуть раньше, еще Qt4 для браузера собирали. Но кто же сейчас вспомнит.

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

Что именно работает медленно?

Каждый пример грузится у меня секунд по 15. Может, нужно просто нарастить гигабайты и гигагерцы или сменить браузер.

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

Ну так об этом нужно судить когда технологию причешут.

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

Ты можешь взять многие утилиты ил даже графические (на SDL2 к примеру) приложения из своего дистрибутива скомпилировать через emscripten и запустить их в браузере.

C++ компилится в Web Assembly

Да, что можно в Web Assembly, что то в javascript перефигачиватся. Не только плюсы, там уже много (вроде) языков могут в васм. Чаще всего библиотеки компилят.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от byko3y

А JS все равно быстрее. Ы-ы-ы-ы.

Какие твои доказательства?

У меня на компьютере WASM в 3-4 раза быстрее JS в этом приложении:

https://allen-garvey.github.io/wasm-dither-example/

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

Qt for WebAssembly: Industrial Panel
Application exit (TypeError: undefined is not an object (evaluating ‘handle[name]’))

ыыы, сегфолты сменились TypeError’ами

А так вообще даже потенциальные юзкейсы крайне узкие: это должно быть что-то настолько замороченное для жсных фреймворков (видел, кажется, на сколько-то урезанную вебнёвую версия фотошопа, например), что можно пожертвовать и временем ожидания запуска приложения, и тормозами на маломощном железе (т.е. у всех в треде, у кого хотя бы не прошка последних пары лет 😉), и тем, что поверх и так жирного веба крутится рантайм, который заново имплементирует то, что там уже есть, но зачастую хуже (в частности, в демке с редактором у меня какая-то вакханалия с поведением элементов при наведении мыши, и это я ещё не открывал этот ужас на фаерфоксе).

Думаю, для пары проектов взлетит со всеми этими оговорками.

Princesska ★★★★
()

Вот только приложения исключительно десктопные можно писать. Они рендерятся конвасом и виртуальная клавиатура на телефоне просто не вылезает

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

У меня на компьютере WASM в 3-4 раза быстрее JS в этом приложении:
https://allen-garvey.github.io/wasm-dither-example/

Откуда ты взял этого поехавшего, который сравнивает 5 миллисекунды WAsm с 20-25 мс JS? Причем, формирование входного массива в Wasm не включается во время выполнения. Даже несмотря на то, что мне удалось скукожить время выполнения пополам:

https://byko3y.github.io/wasm-dither-example/

это все-равно некорректное сравнение, поскольку сотня циклов преобразований выполняется за 800-850 мс, то есть, один цикл выполняется за 8-8.5 мс, что незначительно дольше WAsm, особенно если учесть упомянутую трансляцию входной картинки.

byko3y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.