Comments 8
WebAssembly выгоден только для одной вещи, делать сам софт в браузере и тогда его будет не возможно спиратить.
и тогда его будет не возможно спиратить
А так ли это?
При должном желании спиратить можно всё, что угодно.
Тем не менее, WebAssembly это скомпилированный двоичный файл, и ваш софт распространяется именно в скомпилированном виде. Также, при компиляции может хорошо поработать оптимизатор (всё, как и в обычном C++). Поэтому несмотря на то, что ассемблерный листинг видно прямо в DevTools браузера, разобраться в таком коде гораздо сложнее, чем, например, в минифицированном JS.
Фактически, это такая же задача реверсинга, как и при изучении вирусов, или других нативных программ.
Пожалуй, осложняет её сейчас только то, что для WebAssembly нет (пока?) средств подобных IDA.
Тем не менее, WebAssembly это скомпилированный двоичный файл, и ваш софт распространяется именно в скомпилированном виде. Также, при компиляции может хорошо поработать оптимизатор (всё, как и в обычном C++). Поэтому несмотря на то, что ассемблерный листинг видно прямо в DevTools браузера, разобраться в таком коде гораздо сложнее, чем, например, в минифицированном JS.
Фактически, это такая же задача реверсинга, как и при изучении вирусов, или других нативных программ.
Пожалуй, осложняет её сейчас только то, что для WebAssembly нет (пока?) средств подобных IDA.
Андрей: Насколько я знаю, даже в нативном C++ с шаблонами отладка тяжёлая. Когда мы это затащим ещё и под WebAssembly, у нас наложатся проблемы с отладкой под WebAssembly. Поэтому я думаю, это вообще будет ад. (внимательно смотрит в камеру) Дети, не используйте шаблоны C++!
Нормально всё с шаблонами. Мы отлавливаем креши как в швблонах, так и в лямбдах.
Несомненно, с шаблоными всё в порядке. Использовать их, или не использовать в своём коде — дело соглашений в конкретном проекте. У нас мы решили не использовать. Конечно, в интервью в своей категоричности я палку перегнул.
Вот, что говорит наш архитектор по этому поводу:
Расскажите, вы говорите о нативной разработке, или используете шаблоны в Wasm?
Вот, что говорит наш архитектор по этому поводу:
Шаблоны — вещь нужная и полезная, когда их, готовые и отлаженные, разумно используешь. Когда же эти конструкции самописные, да еще и просто для того «чтобы были», горя с ними хапнешь.
В разработке с ними основная проблема — выращивать их. За один подход что-то вменяемое обычно не пишется, а выращивать их нужны время и терпение, чего зачастую не хватает.
Расскажите, вы говорите о нативной разработке, или используете шаблоны в Wasm?
Спасибо, что поделились своим опытом, сегодня подобные доклады и статьи на вес золота.
Цитата из вашей статьи:
Это совпадает с нашими выводами. И об этом я и говорил в интервью. Инструменты слабые, отлаживать сложно, хорошо помогает нативная версия, чтобы использовать привычные инструменты.
И ещё раз проясню позицию по шаблонам C++: я неправильно сказал, что мы их не используем. Используем, и ещё как. Из библиотек. Но вот своих шаблонов у нас немного.
Нет смысла доказывать что шаблоны это плохо, и использовать их нельзя, здесь я просто неудачно пошутил. Остальное лежит в области соглашений по стилю кода.
Цитата из вашей статьи:
Отлаживать wasm в браузере очень сложно, если у вас нет версии под desktop. Это может очень сильно затруднить разработку. Некоторые обновления тулчейна вносят изменения, ломающие приложение.
Это совпадает с нашими выводами. И об этом я и говорил в интервью. Инструменты слабые, отлаживать сложно, хорошо помогает нативная версия, чтобы использовать привычные инструменты.
И ещё раз проясню позицию по шаблонам C++: я неправильно сказал, что мы их не используем. Используем, и ещё как. Из библиотек. Но вот своих шаблонов у нас немного.
Нет смысла доказывать что шаблоны это плохо, и использовать их нельзя, здесь я просто неудачно пошутил. Остальное лежит в области соглашений по стилю кода.
Sign up to leave a comment.
WebAssembly в продакшне и «минное поле» Smart TV: интервью с Андреем Нагих