Pull to refresh

Comments 8

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

А так ли это?
При должном желании спиратить можно всё, что угодно.

Тем не менее, WebAssembly это скомпилированный двоичный файл, и ваш софт распространяется именно в скомпилированном виде. Также, при компиляции может хорошо поработать оптимизатор (всё, как и в обычном C++). Поэтому несмотря на то, что ассемблерный листинг видно прямо в DevTools браузера, разобраться в таком коде гораздо сложнее, чем, например, в минифицированном JS.

Фактически, это такая же задача реверсинга, как и при изучении вирусов, или других нативных программ.

Пожалуй, осложняет её сейчас только то, что для WebAssembly нет (пока?) средств подобных IDA.
нет (пока?) средств подобных IDA.

Есть wasm2c

Андрей: Насколько я знаю, даже в нативном C++ с шаблонами отладка тяжёлая. Когда мы это затащим ещё и под WebAssembly, у нас наложатся проблемы с отладкой под WebAssembly. Поэтому я думаю, это вообще будет ад. (внимательно смотрит в камеру) Дети, не используйте шаблоны C++!

Нормально всё с шаблонами. Мы отлавливаем креши как в швблонах, так и в лямбдах.

Несомненно, с шаблоными всё в порядке. Использовать их, или не использовать в своём коде — дело соглашений в конкретном проекте. У нас мы решили не использовать. Конечно, в интервью в своей категоричности я палку перегнул.

Вот, что говорит наш архитектор по этому поводу:
Шаблоны — вещь нужная и полезная, когда их, готовые и отлаженные, разумно используешь. Когда же эти конструкции самописные, да еще и просто для того «чтобы были», горя с ними хапнешь.

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

Расскажите, вы говорите о нативной разработке, или используете шаблоны в Wasm?

Сдается мне, вы не понимаете что такое шаблоны в C++ и шаблоны проектирования, раз тут упомянули архитектора. У нас нативное приложение, которое запускается и в браузе. Наш опыт перехода на wasm описан тут.

Спасибо, что поделились своим опытом, сегодня подобные доклады и статьи на вес золота.

Цитата из вашей статьи:
Отлаживать wasm в браузере очень сложно, если у вас нет версии под desktop. Это может очень сильно затруднить разработку. Некоторые обновления тулчейна вносят изменения, ломающие приложение.


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

И ещё раз проясню позицию по шаблонам C++: я неправильно сказал, что мы их не используем. Используем, и ещё как. Из библиотек. Но вот своих шаблонов у нас немного.
Нет смысла доказывать что шаблоны это плохо, и использовать их нельзя, здесь я просто неудачно пошутил. Остальное лежит в области соглашений по стилю кода.
Sign up to leave a comment.