Size: a a a

WebAssembly — русскоговорящее сообщество

2020 June 24

Г

Георгий in WebAssembly — русскоговорящее сообщество
ваще не заметил разницы, что так палишь исходники, что так
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
ЛОни фактически вернулись к дизайну 2013го года)
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
MaxGraey
ЛОни фактически вернулись к дизайну 2013го года)
Не всё новое — хорошо. 😊
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
MaxGraey
Можно написать что вы против нового дизайна здесь:
https://support.github.com/contact

Я лично так и собираюсь сделать. А проблем там очень много - можете показаль любому знакомому дизайнеру и он вам как минимум 5 назовет в первую же минуту
Не нашел с ходу где написать
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Народ, я знаю много людей в этом чате интересуются хардкором и у меня есть что предложить) Кароче я тут всерьез планирую написать рендер-движок ui (лейаут, вектор, текст и т.д) который все будет рисовать через webgl. И создал для этого чат (ему пока два месяца, но там уже накопилось много интересного в истории сообщений) - https://t.me/xframe_ru В общем если кому-то интересно про фундаметнальные подходы к растеризации, рендера и алгоритмы лейаута - добро пожаловать)
А дальше я немного распишу про мотивацию создания движка (зачем нужен браузер-в-браузере)
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Переслано от Богдан
В общем главная мотивация была скорее в том что я долго пытался выучить css/html/svg полностью (чтобы вот изучить раз и навсегда и после этого перестать гуглить всякие нюансы по css) но и так и не смог и решил - ну его нафиг - я лучше возьму webgl и напишу свой движок по рендеру ui - там уж у меня по определению не будет никаких неизвестных моментов/нюансов/хаков и костылей потому что будет реализация всего пайплайна, абсолютно всего на чем строится ui - все будет реализовано с нуля под полным контролем и пониманием чем то что есть в css
-начиная от алгоритмов лейаута вроде флекcбоксов - много ли народу знают про неочевидные моменты флексбоксов - https://habr.com/ru/post/473186 особенности  https://css-live.ru/articles-css/flexbox-vs-css-table-vertical-centering-inlines.html и нюансы https://css-live.ru/articles/flex-grow-strannyj-tak-li-eto.html ?
-продолжая инлайн-лейаутами - вот сколько моментов из статьи https://css-live.ru/articles-css/udivitelnyj-i-neizvestnyj-inline-block.html и цикла статей https://css-live.ru/category/tajny-css2-1 известно рядовому разработчику или верстальщику?
-продолжая лейаутом текста - всякие метрики - https://css-live.ru/css/metriki-shrifta-line-height-vertical-align.html , всякие моменты opentype-фич и нюансы шейпинга текста
-и наконец и заканчивая рендером текста и всяких примитивов векторной графики в пиксели
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Переслано от Богдан
И я уверен что подобной ситуации как в браузерах (что новичок не сможет выучить html/css/svg раз и навсегда и будет всю свою карьеру постоянно гуглить какие-то моменты-нюансы) - у меня надеюсь не получится не только потому что это будет не только fresh-реализация всего пайплайна с нуля без всяких слоев и тон абстракций которые есть в брузерах а еще потому что мы уберем кучу промежуточных и ненужных моделей и апишек
Например у браузерах есть virtual-dom есть понятие layers и reflow, а есть еще canvas-2d апишка. И браузеры очень ограничены в своих возможностях что-то изменить потому что они не могут ломать обратную совместимость и вынуждены поддерживать все то легаси которое накопилось с 1990-х годов.
А вот у меня нет такого требования, мне не нужно предоставлять абстракцию 2d-canvas-а или абстракцию вроде дом-дерева - я могу вообще убрать все промежуточные апишки и абстракции и представить юзерам сразу шаблоны (вроде jsx).
А со стороны реализации этих шаблонов это будет не реакт с его virtual-dom с его diff-ом с изменением html-dom-а чтобы потом еще браузер пересчитал лейаут, слои через reflow а потом еще софтварно отрендерил на cpu (да, браузеры до сих пор не научились растеризировать вектор и текст на gpu) - это будет простой спуск по шаблону с последовательным заполнением вертексного буфера (или текстурки) данными о ui-примитивах то есть очень быстро а дальше единственным draw-call-ом мы вызываем отрисовку этого ui уже на gpu через webgl.
И поскольку это будет совсем другой уровень со скипом всех тех абстракций которые понавортили в браузерах (dom и т.д) то это будет значить что все эти миллионы строк кода в браузерах сведутся к пары тысячам строк кода и абсолютно весь пайлан будет наконец постижим для понимания новичкам (можно будет еще даже курс выпустить с объяснением всего пайплайна и каждой строчки кода) без всяких серых пятен или нюансов css которые приходится гуглить без конца
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
Sergey Rubanov
Закончилась встеча #WebAssembly Community Group. Результаты:
- новый пропозал WebAssembly Instrument and Tracing Technology переходит на phase 1.
- Reference types переходит на phase 4.
- Bulk Memory Operations переходит на phase 4.
- новый пропозал Numeric Values in Data Segments переходит на phase 1.


А ещё JavaScript BigInt <-> WebAssembly i64 включили в Chromium без флага:
https://bugs.chromium.org/p/v8/issues/detail?id=7741#c21
@chicoxyzzy  в чем разница между фазами и где можно увидеть ETA?
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
@xbgnx решили с Flutter поконкурировать? Благородное начинание! 😊
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
@xbgnx Это все оффтоп или вы собираетесь реализовывать это на C++ / Rust / WebAssembly?
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
@xbgnx решили с Flutter поконкурировать? Благородное начинание! 😊
нет, flutter, revery и др это тот же браузер. Судя описанию там они не написали новый пайплайн рендера ui с нуля а юзают skia, harfbuzz, freetype и т.д. Это конечно хорошо что они собрали все эти библитеки и это работает с достаточной производительностью. Но я очень сомневаюсь что такие кейсы https://www.youtube.com/watch?v=M-8k8GEGZPMб и https://www.youtube.com/watch?v=G6yPQKt3mBA будут работать без тормозов. Но главное - они никак не решают фундаментальную проблему - высокий уровень вхождения. Harfbuzz это 100к строк кода, skia - over 300k и т.д. То есть получается ситуация такая же как в браузерах - новичок не сможет полностью понять весь пайплайн от шаблонов к выводу пикселей на экран а значит всю свою карьеру будет вынужден разбираться и постоянно гуглить и подучивать какие-то нюансы (или разбираться в слоях и абстракциях). Более того мне же не вчера пришла эта идея - я могу сказать что я уже более двух лет ее вынашиваю, постоянно изучаю все что только можно и даже жертвую работой и личным временем - то есть поработав и скопив я дальше от пары месяцев и до полугодна плотно погружаюсь и изучаю в режиме фуллтайм. Например я пару месяцев фуллтайма изучал юникод и текстовый шейпинг и я знаю что там творится под капотом у harfbuzz (там такой бардак, куча абстракций и ненужных вещей) и уверен что можно написать текстовый шейпинг на порядок проще. То же самое касается и skia и того что понаворотили в flutter-е
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
> Но главное - они никак не решают фундаментальную проблему - высокий уровень вхождения. Harfbuzz это 100к строк кода, skia - over 300k и т.д. То есть получается ситуация такая же как в браузерах - новичок не сможет полностью понять весь пайплайн от шаблонов к выводу пикселей на экран а значит всю свою карьеру будет вынужден разбираться и постоянно гуглить

Вы это серьездно?
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
MaxGraey
@xbgnx Это все оффтоп или вы собираетесь реализовывать это на C++ / Rust / WebAssembly?
это конечно можно все переписать на c++/rust чтобы скомпилировать в webasm но я довольно неплохо разбираюсь в производителньости жс, знаю как там все инлайнится в ассемблер знаю про мономорфность и прочие вещи и всегда могу посмотреть как жс компилируется движком v8 в ассемблер. Поэтому я пока буду писать движок на чистом js и уверен что его производительность будет не хуже чем webasm
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
MaxGraey
> Но главное - они никак не решают фундаментальную проблему - высокий уровень вхождения. Harfbuzz это 100к строк кода, skia - over 300k и т.д. То есть получается ситуация такая же как в браузерах - новичок не сможет полностью понять весь пайплайн от шаблонов к выводу пикселей на экран а значит всю свою карьеру будет вынужден разбираться и постоянно гуглить

Вы это серьездно?
да, а что не так?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Вы занимаетесь ерундой. Уже все что вам нужно сделано в servo/webrender. Можете выкинуть от туда что вам не нужно и все.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Богдан
это конечно можно все переписать на c++/rust чтобы скомпилировать в webasm но я довольно неплохо разбираюсь в производителньости жс, знаю как там все инлайнится в ассемблер знаю про мономорфность и прочие вещи и всегда могу посмотреть как жс компилируется движком v8 в ассемблер. Поэтому я пока буду писать движок на чистом js и уверен что его производительность будет не хуже чем webasm
Тогда я не очень понимаю чего вы хотите добиться в этом чате? Набрать команду, найти спонсоров для вашего patreon-а? Разрекламировать свой чат?
источник

e

egoarka in WebAssembly — русскоговорящее сообщество
Богдан
Переслано от Богдан
В общем главная мотивация была скорее в том что я долго пытался выучить css/html/svg полностью (чтобы вот изучить раз и навсегда и после этого перестать гуглить всякие нюансы по css) но и так и не смог и решил - ну его нафиг - я лучше возьму webgl и напишу свой движок по рендеру ui - там уж у меня по определению не будет никаких неизвестных моментов/нюансов/хаков и костылей потому что будет реализация всего пайплайна, абсолютно всего на чем строится ui - все будет реализовано с нуля под полным контролем и пониманием чем то что есть в css
-начиная от алгоритмов лейаута вроде флекcбоксов - много ли народу знают про неочевидные моменты флексбоксов - https://habr.com/ru/post/473186 особенности  https://css-live.ru/articles-css/flexbox-vs-css-table-vertical-centering-inlines.html и нюансы https://css-live.ru/articles/flex-grow-strannyj-tak-li-eto.html ?
-продолжая инлайн-лейаутами - вот сколько моментов из статьи https://css-live.ru/articles-css/udivitelnyj-i-neizvestnyj-inline-block.html и цикла статей https://css-live.ru/category/tajny-css2-1 известно рядовому разработчику или верстальщику?
-продолжая лейаутом текста - всякие метрики - https://css-live.ru/css/metriki-shrifta-line-height-vertical-align.html , всякие моменты opentype-фич и нюансы шейпинга текста
-и наконец и заканчивая рендером текста и всяких примитивов векторной графики в пиксели
>главная мотивация была скорее в том что я долго пытался выучить css/html/svg полностью

ну есть же книги по css нормальные (например большая книга по css3, советую прочесть, так как сам с ней начинал), да и зачем что то полностью бездумно учить?
ну и другой вопрос, зачем учить? максимум если под сео - нужно семантику знать (чтобы гугл кушал, хотя сейчас это не проблема для них), в остальном хоть на дивах, хоть на чем угодно можешь делать разметку
по стилям - чего не хватает в них? флексы покрывают 90 процентов кейсов блочной/адаптивной/табличной верстки

то что вы скинули статьи - это обычные примеры как правильно пользоваться инструментом, обычно гуглятся когда нужно что-то посложнее сверстать нужно
источник

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
Michael Pavlovsky
@chicoxyzzy  в чем разница между фазами и где можно увидеть ETA?
источник

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
eta нигде нет, тут много факторов
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
MaxGraey
Вы занимаетесь ерундой. Уже все что вам нужно сделано в servo/webrender. Можете выкинуть от туда что вам не нужно и все.
на мой взгляд там такая же куча абстракций, плюс вопрос сколько там строк кода? сколько нужно времени потратить чтобы понять каждую строчку кода servo/webrender? Я просто хочу написать простой рендер ui на webgl чтобы полностью контролировать вывод пикселей на экран и это занимало не больше пары тысяч строк кода, сейчас есть очень много подходов и техник рендера (не только ui но и 3д) - начиная от  siggraph пейперов заканчивая докладами на ютюбе и то что реализовано в servo/webrender далеко не факт что является самым правильным, простым и эффективным подходом к рендеру
источник