Комментарии 38
Не очень понятно, а какую цель преследовали, зачем именно отказываться от v8? Может лучше было сделать фреймворк для биндингов, чтобы можно было легко вызывать ts код. В v8, емнип, довольно хорошо эта история должна быть проработана.
Ну и вопрос сравнений перфа, наверное, тоже не осветили. Хотя набор бенчиакров здесь сложновато найти, конечно.
Почему не смогли поддержать any? Его же можно в условный AnyJsValue транслировать и использовать динамические возможности... Смотрели в эту сторону?
ну V8 брать запарно, надо самому ивентлуп дописывать будет, а вот условный Bun тут зашёл бы хорошо кмк
Тут либо крестик снимите, либо трусы наденьте. Либо полная динамика и V8, либо статика и LLVM. Гибриды обычно получаются монструозными
Было приложение на С++. Решили попробовать часть приложения писать на Typescript/Javascript. Попробовали, не получилось. Про V8 речь не шла. Если что то я в подкасте задавал подобные вопросы, можно посмотреть здесь https://vkvideo.ru/video-119450242_456240507
Спасибо за интересный обзор. Можете раскрыть подробнее вашу мотивацию на примере какие-нибудь реальных юз-кейсов?
На сколько производительность вашего решения в итоге отличается от классического Native+V8+JS, и почему для вашего UI это критично? Смотрели-ли вы в сторону WebAssembly, WebGL (WebGPU)?
Просто сейчас масса UI пишется с использованием или чисто WebView, или как гибриды. Критичные функции реализуются на компилируемых языках и прокидываются в JS.
Первая — лицензионные ограничения: новые версии Qt, на которых мог бы жить десктопный интерфейс, становятся недоступны по санкционным причинам
Ох, понимаю, у меня проект на Qt под Android, и он не собирался с 2019 года... От одной мысли о настройке на свежей ОС страшно, поэтому ищу сейчас способ организовать сборку с помощью контейнеров. Рассматривали такой вариант?
Круто! Всё ждал когда же будет подобное, хоть самому писать😁
Только не совсем понял что по итогу с event loop, на с++ уже не будет?
Когда смотрю в сторону всяких подобных вещей, всегда прихожу к выводу что условный v8 плюс автоматическая генерация биндингов всегда будет лучше.
Планируете ли добавить поддержку Profile-Guided Optimization (PGO) в ваш компилятор (возможно переиспользуя LLVM инфраструктуру для этого) для повышения производительности итоговых программ?
Первая — лицензионные ограничения: новые версии Qt, на которых мог бы жить десктопный интерфейс, становятся недоступны по санкционным причинам
По каким таким санкционным причинам вам не доступен выложенный в открытый доступ под лицензией LGPL код?
LGPL имеет смысл в линуксах, где у пользователя есть возможность установить отдельно пакет с библиотекой и отдельно - с приложением без библиотеки.
Но, например, на тех же мобилках LGPL бесполезна - вам придётся заворачивать QT в один пакет вместе с приложением и у юзера не будет возможности заменить библиотеку, как того требует лицензия. Значат, вы либо раскрываете все исходники своего приложения, и в этом смысле нет отличий от GPL. Либо покупаете коммерческую лицензию, что в текущих условиях из РФ сделать не получится.
Причем тут мобилки, если речь в посте про десктопный интерфейс?
any вообще неприятная вещь. Если её реализовать, то можно дебажить до бесконечности.
А зачем в целом пытаться решать проблему биндинга с js, если есть dart с flutter, у которого есть возможность вызывать c++ код из коробки и делать единый кросс платформенный ui?
И люди ещё говорят, что ИИ неэффективный и делает не пойми что
Можно взять gpuui который использует редактор zed, писать просто, интерфейсы получаются очень быстрыми
есть фреймворк nativescript. Теперь есть компилятор TSNative. Мне интересно, а насколько проще будет работать с TSNative? Насколько это проще чем использовать wasm/ffi или организовать RPC? Будет ли дружить AOT со сложными типами typescript и как влияет на дебагинг?
Респект за инженерное безумие конечно, но бизнес-обоснование звучит как "мы решили сэкономить на спичках, купив завод по производству серы"))
звучит интересно
Вы пока не думали заменять макро биндинги на рефлексию ? И что у вас с поддержкой С++ модулей?
Есть же всякие Flutter и прочие кроссплатформенные OpenSource UI фреймворки...
Bun:jsc достаточно.
Ну это прикольно. Особенно круто будет, если вы до чуть более юзабельного состояния осилите это допилить.
enumкак runtime-объекты
Без вот этого будет крайне не удобно, например, ну и т.п.
Any в помойку.
Ещё вопрос — что с кросс-платформенностью? Это только для винды? Для какой версии?
Отдельно у меня вопрос к тем кто спрашивает "зачем" — сколько из вас вообще реально пробовали V8 в свои программы встроить? Понятно, что можно это сделать, непонятно чем хуже иметь альтернативу в виде того что предлагают авторы из статьи.
Информация
- Сайт
- myoffice.ru
- Дата регистрации
- Дата основания
- 2013
- Численность
- 1 001–5 000 человек
- Местоположение
- Россия
- Представитель
- vvanomad
Компилируем TypeScript в натив: хардкор и мясо