Vlad
Вообще топ - заэмбеддить его как-нибудь без JS.
Alexander
Stylish уже окончательно забросили?
Евгений
Вообще топ - заэмбеддить его как-нибудь без JS.
Кто-то тут кидал UI поверх вебрендера сервошного
Alexander
Но, на самом деле, я думаю сначала его обкатают в файрфоксе - там сейчас кривых углов должно было вылезти. А потом уже будут думать над стабильным АПИ для простых смертных 😊
Евгений
По-моему было бы неплохо поверх вебрендера вкрутить релм и будет збс
Vlad
https://github.com/Thinkofname/stylish
Над попробовать
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. Они там конечно не особо дергаются, но сбрасывать его со счетов тоже не стоит
Alexander
(и не стоит забывать откуда ноги растут: JS/DOM/Web)
А это ещё хороший вопрос - нужен ли будет DOM, поскольку WebAssembly, Canvas, и всягие Web*L открывают дорогу быстрым приложениям без костылей DOM.
big
Тут зависит от того конечно в какой обертке все это подадут. На пустом Canvas-е далеко не уедешь ведь
big
Я имею ввиду кроме ввода/вывода есть куча других вещей
big
(первое что приходит в голову: скрин ридер)
Alexander
Хотя пока, пока... всё это привязано к DOM на эпичных соплях JS. Так что, праздновать пока очень рано 😊
big
во-во!
big
это мой поинт
Vlad
А это ещё хороший вопрос - нужен ли будет DOM, поскольку WebAssembly, Canvas, и всягие Web*L открывают дорогу быстрым приложениям без костылей DOM.
Тут на десктопе есть *GL. Но все хотят серво заэмбеддить с домом. На вебе обратная ситуация. Красиво, че
Евгений
А это ещё хороший вопрос - нужен ли будет DOM, поскольку WebAssembly, Canvas, и всягие Web*L открывают дорогу быстрым приложениям без костылей DOM.
А чем тебе DOM не нравится? Единственное хорошее, что принёс веб это DOM и CSS. Иначе бы таскали бы ручками формочки до сих пор, как во времена делфи
Alexander
Верстать текст с рюшечками и плюшечками удобно в веб-движке, он сделан для этого. Но делать полноценные приложения, выполняющие какую-то полезную работу кроме красивого отображения текста всё-таки нужно что-то большее, чем DOM.
Vlad
PNaCl у них был только в виде плагина, дополнительные телодвижения, чтобы на нём что-то заработали - ставили крест на кроссплатформенности. Депрекейтнули его в пользу стандартизированного WebAssembly. Rust отличается от других языков своей выразительностью. Ещё пару лет его покрутят с корутинами, генераторами и прочим упрощением жизни, добавят сахара и многим он начнёт сильно заменять языки вроде питона. При этом на WebAssembly лучше всего ложатся языки с ручным управлением памятью, без сборщика мусора. И кто у нас здесь конкурент Rust? Ногострельные C/C++ или какие-нибудь Паскаль, Ада? А языки с GC будут конкурировать с JS, то есть по большей части они никому не нужны будут, поскольку с JS будет тяжело конкурировать - у него нативная поддержка на платформе.
Rust в wasm действительно неплохо смотрится. Но не думаешь же ты, что все побегут свой JS выбрасывать?
Vlad
(хотя хотелось бы)
Alexander
Все - не побегут. Такие масштабные процессы мгновенно не происходят. Но можно посмотреть на то, куда несут PHP, после стольких лет доминирования в Web.
big
мне кажется не полезут. Зато WASM откроет новые возможности для того же JS )
Vlad
Будут в ЖС линковать что-нибудь нативное. Ооох...
big
вообще утопия мне кажется: это когда выкинут из веба все WebAPI и оставят только low-level: треды, графикс, инпут. Все остальное распространяется в либах
Alexander
Что делать. Я уже линкую ))) Мне хочется чтоб быстро работало, но я пока никуда не могу деться от JS 😊 Плюс поддержка в плане библиотек - вообще никакая. Нужно брать под своё крыло заброшенный год назад и недопиленный rust-webplatform.
Alexander
big
и пока все сходятся на том, что он берет на себя ту мач.
Евгений
Не покрывает. На нём тяжело и громоздко делать многие вещи, вроде табличек.
Когда я последний раз тыкал фронтенд, он ничего кроме табличек и не умел, если честно. Как мог разучиться, не понимаю?
Vlad
К сожалению не будет. ДОМ не может покрыть все юзкейсы пока, поэтому например не взлетел на мобилах
Глядя на некоторые аппы создается впечатление, что там просто в WebView их сайт открыт.
big
Глядя на некоторые аппы создается впечатление, что там просто в WebView их сайт открыт.
хах, безусловно, некоторые умудряются собрать монстров и на нативных вьюхах ) Получается не красиво, не производительно и адски дорого
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
там не все так просто. Она генерируется в зависимости от опций
Ну, всё-равно, две строки можно вынести в константы - насколько меньше автоматически станет сгенерированный .js
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
нужно сначала чтобы он компилился нормально )
Ну прям по самому больному месту )))