Pull to refresh

Comments 21

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

Каждому мнению быть ) хотя с аргументированным мнением спорить проще. Подвинуть - всегда пожалуйста, приходи на собес

Я хоть и не Cpp джедай, но, тем не менее, прочитал статью с интересом. Не обращайте внимания на такие вот скользкие комментарии. Как вы правильно сказали, там даже аргументации толковой нет. Специалист себя так не ведет. А вы - большой молодец! QuickJS, кстати, использует редактор Figma (скомпилированный в WASM) для своей плагин-системы.

Бегу спасать свой комментарий. Аргументацию хотите? Ну на первый взгляд отсутствие комментариев в коде - явное зло, нас учили не только писать коротко с отступами, но еще и комментировать код и это не все,есть же несколько правил оформления хорошего кода. Это при беглом осмотре

Если у в коде появляются комментарии не по делу (если это не описание БЛ, алгоритма, *doc), то код немного пованивает, если хотите написать комментарий куда-то, значит надо извлечь функцию и правильно ее обозвать

Плюс к этому нет ни блок-схем, ни каких вообще схем, код вырван из контекста - из разных мест и непонятно что вообще делает, ни структуры проекта, мало визуализации для общего понимания проекта

Добавлю также нет результата - что вы сделали в итоге - какой проект? Абстрактное натягивание джаваскрипт совы на с++ глобус. Какой-нибудь скриншот туториал проекта не помешал бы. Сухая болтология про какие-то обертки функций-методов и переменных - наскучивает, даже читать неприятно.

Отвечу на все разом.

Отсутствие, ровно как и избыток комментариев - признак плохого кода. Я стараюсь держаться посередине. Но здесь и правда комментарии были бы полезны

Блок схема полезна, но не всегда необходима. Здесь нет такой запутанности сущностей чтобы рисовать блок схему. По сути там будет меньше пяти блоков

Абстрактное натягивание js на с++ - это скорее понятно тем кто работает в мобильном геймдеве, кто мучается с С++ и знает какие плюсы несет скриптовый язык. И было бы неплохо больше расписать в статье о мотивации зачем я это делаю, для большего круга людей. Может быть в будущем напишу статейку об использовании в движке и какие плюшки от этого получаю

Ну да, но вот я печатаю и на С++ и на Javascript, несильно конечно скорее как любитель и пишу скорее декларативно, например ваш последний код "Пример скрипта из скриншота" мне еще понятен. Это кстати единственный код на жс в статье. А вот все куски кода на с++ мне вообще непонятны. Непонятно и необходимо объяснить как код на жс встраивается в код на с++, может схемку нарисовать какую-нибудь. Что тогда происходит? Код на жс или пишется на каком-то его подобии, как например jni. Что за движок вы бы сказали, он там например основан на опенгл или директикс?

да не очень и тяжелый, https://mujs.com/
их vm занимает примерно 145кб рантайма, сделан специально под ембед платформы
все плюшки js в наличии

Кажется js движков гораздо больше чем я думал... Хоть и не так просто все их нагуглить. Спасибо за вариант, почитаю доки

Интересный интерпретер JS. Сделан на C, и реализует последнюю спецификацию Ecmascript. Как вы узнали о MuJS?

переделывал пару проектов для IoT, где "умные" индусы (реально индусы) затащили v8 в железо с 8mb ram, оно там жило примерно 2-3 часа и умирало на номем. А использовали железку для опроса датчиков движения в помещении. Походил по форумам нашел mujs, понравилось

Еще можно взять Qt в котором QJSEngine из коробки. Единственный критичный для меня минус - они пока так и не сделали возможность прикрутить свою отладку, хотя такая была в давно устаревшем QtScript.

QML, QT Widgets, QJSEngine – все это QT и их ужасная ценовая политика. У JS есть самая-самая киллерфича – npm. Есть много минусов (тянешь миллиард зависимостей), но они перекрываются скоростью разработки.

Valve, например, написали Panorama как раз на JS и радуются скорости и легкости написания UI.

В js нет перегрузки операторов и эти все dir.Add(a).Mul(new Vec2(2, 2)) быстро надоедают... вместо (dir + a) * 2 как в тех же плюсах. Нет?

Все так, самая бесячая фича (точнее ее отсутствие) в JS

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


Из недостатков — придётся написать чуть больше логики для передачи this через все обёртки, а также надо будет проверять на 0 результаты всех dynamic_cast.

Да, тоже думал об этом. Поизучаю в будущем, попробую оптимизировать. Спасибо!

Однако, есть один минус — он плохо показывает содержимое объектов. Точнее, он их не показывает, пишет просто [object] и все. Кажется, авторы jerry здесь как-то поленились и не довели передачу информации до конца. Что ж, не страшно, добавим сами!

А вам в итоге удалось починить отладку?

Нет, еще не добрался

Sign up to leave a comment.

Articles