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

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

Обфускация хитрой логики, которая составляет коммерческую тайну, например

В таком случае можно использовать сам JS/AssemblyScript, с которым знакомы фронты/фуллстеки. Все еще непонятно зачем это Go'шникам

Можно, например, использовать готовые go-модули, реализующие вычислительно сложные задачи (те же нейронки, например, или какую-либо обработку изображений/видео/звука). Ну и чтобы не миксовать с JS, визуализацию результатов можно собрать там же, на Go

Сложные интерфейся будут более отзывчивыми ?

По своему опыту вижу плюс в wasm если надо иметь например единую кодовую базу на фронте с бекендом на go. Либо для какой то специфики или скорости. Типа как в figma все на wasm+svg (вроде?) что бы все летало. Но не уверен на счет figma, где то слышал.

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

Я тестил скорость WASM и обнаружил, что при работе с DOM объектами прирост по сравнению с JS незначительный. А тяжелая математика и криптография реально ускоряется.

DOM фактически проксируется через V8 (с ним общаемся через syscall/js), поэтому принципиальной разности в скорости работы с элементами не будет. В основном изменения в производительности заметны при реализации вычислительно сложных задач.

А относительно размера можно посмотреть в сторону https://github.com/webassembly/binaryen, там есть оптимизирующий инструмент wasm-opt, который позволяет выполнять оптимизацию wasm уже после компиляции.

Отличный мануал, очень в тему. Понятно, что использовать для создания веб фреймворка это вообще ИМХО нецелесообразно, но для ресурсоёмких вычислений или хитрых библиотек то, что надо. Собрал пример с капчей в более полном варианте, включая проверку: https://github.com/DirectX/go-wasm-captcha-demo

Go в браузере - мечты сбываются )

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