Vlad
Вообще топ - заэмбеддить его как-нибудь без JS.
Alexander
Stylish уже окончательно забросили?
Alexander
Но, на самом деле, я думаю сначала его обкатают в файрфоксе - там сейчас кривых углов должно было вылезти.
А потом уже будут думать над стабильным АПИ для простых смертных 😊
Alexander
Евгений
По-моему было бы неплохо поверх вебрендера вкрутить релм и будет збс
Vlad
Vlad
Если же говорить про веб, то ну хз. Создается впечатление, что народ реально прется с JS. Ну иначе нафига они б стали его на сервак тянуть со своей нодой. Так что вот есть у меня некоторые сомнения по поводу того, что wasm, мол, все изменит. У того же гугла уже давно есть PNaCl, что-то они его как-то не особо используют
Alex
хлорид натрия ж вроде депрекейтнули или собирались
Alex
про лицензии небось какие нибудь не договорились
Alexander
Если же говорить про веб, то ну хз. Создается впечатление, что народ реально прется с JS. Ну иначе нафига они б стали его на сервак тянуть со своей нодой. Так что вот есть у меня некоторые сомнения по поводу того, что wasm, мол, все изменит. У того же гугла уже давно есть PNaCl, что-то они его как-то не особо используют
PNaCl у них был только в виде плагина, дополнительные телодвижения, чтобы на нём что-то заработали - ставили крест на кроссплатформенности.
Депрекейтнули его в пользу стандартизированного WebAssembly.
Rust отличается от других языков своей выразительностью. Ещё пару лет его покрутят с корутинами, генераторами и прочим упрощением жизни, добавят сахара и многим он начнёт сильно заменять языки вроде питона. При этом на WebAssembly лучше всего ложатся языки с ручным управлением памятью, без сборщика мусора. И кто у нас здесь конкурент Rust? Ногострельные C/C++ или какие-нибудь Паскаль, Ада?
А языки с GC будут конкурировать с JS, то есть по большей части они никому не нужны будут, поскольку с JS будет тяжело конкурировать - у него нативная поддержка на платформе.
big
полехче. Есть обратная сторона. Поскольку есть уйма управляемых сред, WebAssembly должен будет получить неплохую GC/ref историю
big
(и не стоит забывать откуда ноги растут: JS/DOM/Web)
big
(я это к тому, что не понятно, что произойдет быстрее Rust раскачается или WA подцепит другие языки)
Alexander
Должен. Будет. Но пока нет. И это всё не о том. Чужой GC нужно будет интегрировать со своим, будут определённые проблемы с этим. А JIT в JIT, пока не будет полноценной интеграции - тоже не очень интересно.
big
Окей, кроме того есть еще Swift. Они там конечно не особо дергаются, но сбрасывать его со счетов тоже не стоит
big
Тут зависит от того конечно в какой обертке все это подадут. На пустом Canvas-е далеко не уедешь ведь
big
Я имею ввиду кроме ввода/вывода есть куча других вещей
big
(первое что приходит в голову: скрин ридер)
Alexander
Хотя пока, пока... всё это привязано к DOM на эпичных соплях JS. Так что, праздновать пока очень рано 😊
big
во-во!
big
это мой поинт
Vlad
Alexander
Верстать текст с рюшечками и плюшечками удобно в веб-движке, он сделан для этого.
Но делать полноценные приложения, выполняющие какую-то полезную работу кроме красивого отображения текста всё-таки нужно что-то большее, чем DOM.
Vlad
Vlad
(хотя хотелось бы)
Alexander
Все - не побегут. Такие масштабные процессы мгновенно не происходят.
Но можно посмотреть на то, куда несут PHP, после стольких лет доминирования в Web.
big
мне кажется не полезут. Зато WASM откроет новые возможности для того же JS )
Vlad
Будут в ЖС линковать что-нибудь нативное. Ооох...
big
вообще утопия мне кажется: это когда выкинут из веба все WebAPI и оставят только low-level: треды, графикс, инпут. Все остальное распространяется в либах
big
Евгений
Alexander
Что делать. Я уже линкую )))
Мне хочется чтоб быстро работало, но я пока никуда не могу деться от JS 😊
Плюс поддержка в плане библиотек - вообще никакая.
Нужно брать под своё крыло заброшенный год назад и недопиленный rust-webplatform.
big
Vlad
Alexander
big
big
и пока все сходятся на том, что он берет на себя ту мач.
Vlad
Vlad
Alexander
а чего это вы линкуете уже?
Пока вот только начал с простых вещей.
Делаю 2d-графики для мониторинга криптовалют.
Сначала просто отображение текущей ситуации, потом всякие индикаторы.
Причём Rust меня подкупает изоморфностью, обещаной, но не данной в JS (хотя некоторые ухитряются запускать на сервере браузер для рендеринга страниц, ибо seo 😊) - я могу рисовать графики интерактивно на клиенте, и статически в виде картинок на сервере, для рассылки по всяким чатам, ботам, соцсетям и письмам. И это всё на максимуме производительности в языке, который умеет полноценную работу с байтами и параллельность.
Вот как-то так 😊
big
мне вообще очень интересная связка rust + wasm, даже пытался найти куда контрибьютить
big
но я ненашел точек приложения силы и все чет взорвалось
big
я так понимаю основной фронт работ либо binaryen либо LLVM, а там С++. А я ведь это вроде как для удовольствия хотел заниматся )
Alexander
Ну, если есть столько желающих, давайте соберёмся в междусобойчик и таки сделаем.
Там в WebPlatform не хватает самого главного - работы с событиями и интеграциями с различными API.
Первоначальный автор пригласил всех желающих заняться развитием, сделал организацию на гитхабе.
Но, хотя он туда добавил несколько человек, как-то активно никто не пилит 😊
Alexander
Binarien, конечно, более фундаментально.
Вот, в растовой кодогенерации JS-обвязки - вообще страх и ужас.
Там можно количество кода наверно сократить раз в 10 просто убрав повторения текста и вынеся его в константы.
big
а разве closure compiler с этим не справляется?
big
(никогда не компилил с ним)
Alexander
Не знаю. Я его пока не пробовал прикручивать 😊
Alexander
big
да-да, эмскриптеновская обертка
big
closure вроде как должен с ней управиться
Alexander
Но мне кажется этот вопрос можно решить и без clojure и прочих ужималок.
Vlad
Что это за скрин?
big
выкинуть emscripten обертку? )
big
написать самому? )
Alexander
Ну хотя бы немного допилить )))
big
там не все так просто. Она генерируется в зависимости от опций
Alexander
Что это за скрин?
Это код, который генериуется при компиляции в target wasm32-unknown-emscripten.
Там основы вроде _alloc и т.п., плюс обёртки вокруг экспортированных функций.
Vlad
Забить пока. rust-webplatform надо
Alexander
Забить пока. rust-webplatform надо
В общем, согласен, объём кода не жмёт, кому жмёт использует злой closure.
А вот WebPlatform - действительно неюзабелен без поддержки событий и API.
Vlad
А потом фреймворки нужны
big
так друзья
Vlad
Какой-нить реакт
big
вы куда то далеко забегаете
big
нужно сначала чтобы он компилился нормально )
big
Emscripten/fastcomp + binaryen та еще связочка
Alexander
Многие вещи могут быть решены вообще вот такой рутинной фигнёй 😊
https://github.com/irbis-labs/rust-webplatform/commit/5d36b8502a3c17d6b80cbd1f14c40abd560a671a
big
и rust еще не имеет тестов на Wasm
big
самое плохое — это неизвестность, что делать то
Vlad
Бля, тестов нет. Нехорошо
Vlad
Даже пугающе
big
скорее всего fastcomp нужно выкидывать, и переделывать flow из fastcomp → asm2wasm → binaryen на LLVM
Vlad
Где можно почитать как это все работает? Только в сорцах?
Alexander