Re[13]: Web 2.0
От: Mamut Швеция http://dmitriid.com
Дата: 23.11.19 12:06
Оценка: +2
_>>И отсутствует это всё не потому, что там какие-то идиоты сидят, а потому что предназначения HTML другое.

НС>Нет, потому что все это прекрасно реализуется прикладным кодом и не нужно дополнительно усложнять и так сверхсложный браузерный движок.


Нифига оно не реализуется «прекрасно». Сложность создания новых компонентов зашкаливает все разумные пределы. Собственно, это и етс одна из причин, что подавляющее большинство «компонентных библиотек» максимум осиливают табы и «аккордионы», а все, что сложнее, обычно стоит невменяемых денег.


dmitriid.comGitHubLinkedIn
Re[6]: Web 2.0
От: rFLY  
Дата: 23.11.19 12:11
Оценка:
Здравствуйте, rFLY, Вы писали:

FLY>Здравствуйте, alex_public, Вы писали:


_>>Не, ну у меня конечно же топовый комп и видеокарта, а браузер Firefox. Но всё равно по идее не должно быть такой разницы. В разы — да. Но не в десятки или сотни раз!

FLY>Ну чёрт его знает, может он часть вычислений/прорисовку на видюху переводит и встроенное граф.едро от интела этого не поддерживает.

UPDT: Дома глянул, опять же на ноуте и опять же кор ай 5, но 8 поколения. Разницы с обычным хтмл по загрузке проца нет.
Re[14]: Web 2.0
От: Ночной Смотрящий Россия  
Дата: 23.11.19 13:09
Оценка:
Здравствуйте, Mamut, Вы писали:

НС>>Нет, потому что все это прекрасно реализуется прикладным кодом и не нужно дополнительно усложнять и так сверхсложный браузерный движок.

M>Нифига оно не реализуется «прекрасно». Сложность создания новых компонентов зашкаливает все разумные пределы.

Это потому что ты не делал контролы для классических библиотек.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[13]: Web 2.0
От: alex_public  
Дата: 23.11.19 13:30
Оценка:
Здравствуйте, Codealot, Вы писали:

_>>Вот как будто бы ты сам не видел внутренности всех этих html/css/js фреймворков. На фоне этого ада, даже кривые Qt и MFC выглядят образцами архитектурной красоты! Хуже чем эти JS фреймворки, наверное только PHP фреймворки (в которых опять же есть html/css/js)...

C>Пощупав недавно эти "чудеса дизайна", подумалось — а не пора ли просто отправить html/css на помоечку, и сделать фреймворк на одних плавающих дивах и абсолютном позиционировании?

Ну собственно рисование всего через canvas (не важно из wasm или js) — это и есть конечная точка этого направления. Правда при этом возникают проблемы с поиском, но это актуально только для классических сайтов, а не для веб-приложений.
Re[15]: Web 2.0
От: Mamut Швеция http://dmitriid.com
Дата: 23.11.19 14:11
Оценка:
M>>Нифига оно не реализуется «прекрасно». Сложность создания новых компонентов зашкаливает все разумные пределы.
НС>Это потому что ты не делал контролы для классических библиотек.

Что такое «классические библиотеки»? На дворе 2019-й год. Набор примитивов для веба сейчас хуже и беднее, чем Дельфи или там Qt образца 2000-го.


dmitriid.comGitHubLinkedIn
Re[13]: Web 2.0
От: alex_public  
Дата: 23.11.19 14:16
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>>>Странный ты. Если ты используешь библиотеку, то писать руками не надо.

_>>Писать новые контролы? Ну иногда бывает, но это скорее исключение, чем практика.
НС>Ровно как и в современном вебе.

Даа? Ну покажи какой объём кода на чистом JS (без всяких дополнительных библиотек) тебе понадобится, чтобы реализовать банальное меню.

НС>>>Ну так голый HTML+JS это тоже не библиотека.

_>>Я именно про это и говорю. GUI библиотека браузера — это DOM (во всяком случае большая его часть).
НС>Так библиотека или не библиотека, ты уж определись.

Повторяюсь последний раз:
DOM — это слабенькая GUI библиотека (написанная на C++).
HTML/CSS/JS — это единственный (и кривой) интерфейс к ней.
Плюс к этому всему, JS — это единственное (и крайне убогое) средство расширения этой библиотеки.

НС>>>Для целей GUI современный JS, а тем более TS вполне адекватны.

_>>Угу, особенно на нём хорошо выходит делать классические расширяемые с помощью ООП иерархий библиотеки... )))
НС>А зачем на нем делать классические библиотеки?

Потому что ООП подход — это пока лучшее, что придумали в отрасли, для задач модульности и расширяемости.

_>>>>HTML хорош для создания документов, но не для создания GUI.

НС>>>HTML5 вполне подходит для создания GUI и с прицелом на это создавался.
_>>Если бы это было так, то не существовало бы множества библиотек под браузер, добавляющих к нему самые базовые контролы
НС>Ровно как существует множество библиотек под С++, добавляющих ...

Причём тут вообще C++? ) Мы говорим про GUI библиотеки, а они точно не входят в стандарт C++. А вот в стандарте HTML5 GUI часть вполне имеется, но крайне убогая.

_>>Вот что мешало записать хотя бы эти https://getbootstrap.com/docs/4.3/components контролы в HTML5

НС>Зачем?

Что бы на HTML5 можно было делать приличный GUI (ты же говорил, что это была одна из целей! ), без дополнительных диких библиотек.

_>>И отсутствует это всё не потому, что там какие-то идиоты сидят, а потому что предназначения HTML другое.

НС>Нет, потому что все это прекрасно реализуется прикладным кодом и не нужно дополнительно усложнять и так сверхсложный браузерный движок.

Так вообще всё реализуется прикладным кодом. У нас же есть canvas и js — больше по идее ничего не надо! Зачем тогда в html насовали всяких там button, editbox (input), listbox (select) и т.п...

_>>Ну давай, расскажи о колоссальном прогрессе у HTML в области GUI... )))

НС>Возьми спеку HTML5 и почитай.

Вот кстати как раз это я и делал в момент выхода html5. И тогда она меня в принципе порадовала. Только вот дальше развитие пошло совсем не туда. Точнее там просто нет никакого развития с точки зрения html, а всё пошло в js. А html так и остался убогеньким с точки зрения GUI.

НС>>>Или не будет. По факту реакту уже 6 лет и своей актуальности он не потерял, а vue принципиально от него не отличается.

_>>Надейся, надейся. )
НС>Да мне пофигу, в моих проектах фронта не очень много, мне пока одного фронтендера за глаза. Ну будет вместо реакта чего еще — ради бога.

Хы, у нас "фронтенда" нет вообще, в тех продуктах, которые покупают пользователи. Однако у нас есть свои сайты, которые мы делаем и обслуживаем сами (хотя это несколько не наш профиль), а не заказываем аутсорсом кому-то. Поэтому приходится в этом более менее разбираться, так сказать для внутренних целей.

_>> Кстати, помнится самым мощным GUI фреймворком для приложений (а не для сайтиков!) был ExtJS — и что это ты её не упомянул, а? )

НС>ExtJS это как раз от таких как ты любителей старого подхода. Потому и сдох. Реакт сильно лучше.

Очень забавно эта твоя фраза звучит, на фоне факта продаж (причём за очень приличные деньги) такого продукта как ExtReact. Кстати, а ещё у них там есть ExtAnglular...

И кто-то там ещё заикался о слабом знание темы или любителях старых подходов...

_>>Вот как будто бы ты сам не видел внутренности всех этих html/css/js фреймворков.

НС>Видел. Ничего космического там нет.

Космического конечно нет. Там только мусорное и адское.

_>> На фоне этого ада, даже кривые Qt и MFC выглядят образцами архитектурной красоты!

НС>С точностью до наоборот.

Ну давай перейдём к деталям. И так, допустим нас есть такой готовый контрол как кнопка (есть и в Qt и в MFC и в HTML). Но её поведение и внешний вид нас не устраивают.

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

Что мы делаем в случае html/css/js? Сделать, как описано выше, мы банально не можем по определению. Можем только слегка кастомизировать поведение с помощью css и пары callback'ов, но в крайне узких рамках. Ну или же мы можем наплевать на стандартный код и написать новый контрол с нуля, на базе div/span/canvas, что требует гораздо больших усилий. И главное, что для разных контролов в рамках одного и того же кода могут применяться разные подходы, потому как написать button с нуля не так уж сложно, а вот сделать editbox (со всеми корректными копированиями, способами ввода и т.п.) уже гораздо сложнее и чаще предпочитают всё же как-то переиспользовать стандартный. В итоге имеем адский говнокод из смеси использования html, своих велосипедов и всё это на убогом языке с кривой модульностью и ООП.

И да, описанное выше — это описание не какого-то проекта, а большинства JS фреймворков...
Re[3]: Web 2.0
От: Mamut Швеция http://dmitriid.com
Дата: 23.11.19 14:18
Оценка:
Здравствуйте, Ops, Вы писали:

Ops>Здравствуйте, $$, Вы писали:


Ops>$>Могло бы быть альтернативой флешу, но нет, на ослике не работает.


Ops>Он где-то еще остался? Последние динозавры с него слезают, потому что нужные им сайты перестают там работать. Пора бы окончательно закопать стюардессу.



В следующем году официально закапывают:

https://theblog.adobe.com/adobe-flash-update/
https://www.chromium.org/flash-roadmap
https://blog.mozilla.org/futurereleases/2017/07/25/firefox-roadmap-flash-end-life/


dmitriid.comGitHubLinkedIn
Re[10]: Web 2.0
От: alex_public  
Дата: 23.11.19 14:30
Оценка:
Здравствуйте, D. Mon, Вы писали:

_>>В принципе, после добавления в wasm поддержки simd, все нужные кодеки можно будет уже писать (а точнее просто скомпилировать, т.к. большинство их них написаны на C/C++ и только некоторые используют ещё и ассемблер для ускорения) прямо на wasm.

DM>Говно получится. Современные кодеки стандартных форматов давно используют GPU-ускорение, без него на одном CPU получается очень грустно даже с SIMD.

Ну SIMD в любом случае нужен хотя бы для банальных эффективных memcpy... А если говорить про GPU, то вычисления на нём уже давно доступны в браузере, и без wasm. Благо WebGL — это OpenGL ES 3.0 и там поддерживаются вполне себе современные шейдеры. Кстати, я тут ещё пару лет назад показывал тест, который как раз игрался с шейдерами из wasm.
Re[13]: Web 2.0
От: alex_public  
Дата: 23.11.19 14:41
Оценка: +1
Здравствуйте, Codealot, Вы писали:

_>>На фоне этого ада, даже кривые Qt и MFC выглядят образцами архитектурной красоты!

C>Кстати, а что плохого в Qt?

Кроме того, что это ожиревший монстр-всемогутер? Лично мне больше всего не нравится то, что это C++ библиотека, написанная в стиле Java. Понятно что это всё наследие 90-ых, в которые библиотека родилась, и в которых по другому просто не умели. Но в сравнение с современными C++ библиотеками она выглядит крайне печально. Ну это естественно речь о внутренней архитектуре. А так сказать по итоге применения она по прежнему на голову опережает всех других. Только вот это всё исключительно благодаря экстенсивному подходу (затраченным человеко-часам). Вот если бы кто-то вдруг сподобился вложить столько же денег, сколько потрачено на Qt, в GUI библиотеку, написанную на современном C++ — это было бы на порядки красивее и эффективнее. Но думаю такого уже никогда не случится по бизнес-причинам.
Re[14]: Web 2.0
От: Mamut Швеция http://dmitriid.com
Дата: 23.11.19 14:43
Оценка:
_>Ну собственно рисование всего через canvas (не важно из wasm или js) — это и есть конечная точка этого направления. Правда при этом возникают проблемы с поиском, но это актуально только для классических сайтов, а не для веб-приложений.

Там много других проблем возникает: accessibility, рисовка шрифтов, вообще работа с текстом на canvas... В общем там вагон и маленькая тележка.

Можно почитать, что пришлось делать Фигме, например: https://www.figma.com/blog/building-a-professional-design-tool-on-the-web/


dmitriid.comGitHubLinkedIn
Re[16]: Web 2.0
От: Ночной Смотрящий Россия  
Дата: 23.11.19 14:44
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Что такое «классические библиотеки»? На дворе 2019-й год. Набор примитивов для веба сейчас хуже и беднее, чем Дельфи или там Qt образца 2000-го.


Ты компоненты для Дельфи пробовал сам писать?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[14]: Web 2.0
От: Ночной Смотрящий Россия  
Дата: 23.11.19 14:44
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Даа? Ну покажи какой объём кода на чистом JS (без всяких дополнительных библиотек) тебе понадобится, чтобы реализовать банальное меню.


Банальное меню можно вообще без JS реализовать.

НС>>>>Ну так голый HTML+JS это тоже не библиотека.

_>>>Я именно про это и говорю. GUI библиотека браузера — это DOM (во всяком случае большая его часть).
НС>>Так библиотека или не библиотека, ты уж определись.
_>Повторяюсь последний раз:
_>DOM — это слабенькая GUI библиотека (написанная на C++).
_>HTML/CSS/JS — это единственный (и кривой) интерфейс к ней.

Т.е. GDI в винде это такая слабенькая GUI библиотека, да?

_>Плюс к этому всему, JS — это единственное (и крайне убогое) средство расширения этой библиотеки.


В чем убогое?

НС>>>>Для целей GUI современный JS, а тем более TS вполне адекватны.

_>>>Угу, особенно на нём хорошо выходит делать классические расширяемые с помощью ООП иерархий библиотеки... )))
НС>>А зачем на нем делать классические библиотеки?
_>Потому что ООП подход — это пока лучшее, что придумали в отрасли

Докажи

_>Что бы на HTML5 можно было делать приличный GUI (ты же говорил, что это была одна из целей! ), без дополнительных диких библиотек.


Чем тебе мешают библиотеки? И почему в С++ библиотеки тебе не мешают? Почему бы не потребовать контролов от драйвера видеокарты?

_>>>И отсутствует это всё не потому, что там какие-то идиоты сидят, а потому что предназначения HTML другое.

НС>>Нет, потому что все это прекрасно реализуется прикладным кодом и не нужно дополнительно усложнять и так сверхсложный браузерный движок.
_>Так вообще всё реализуется прикладным кодом.

Да. И никто не требует реализации контролов от библиотечки для рисования.

_>Хы, у нас "фронтенда" нет вообще


Заметно.

_>>>Вот как будто бы ты сам не видел внутренности всех этих html/css/js фреймворков.

НС>>Видел. Ничего космического там нет.
_>Космического конечно нет. Там только мусорное и адское.

Давай конкретнее. Ты уже пятое сообщение выдаешь кучу эмоциональных эпитетов и не можешь их никак обосновать.

_>Что мы делаем в классических ООП библиотеках? Наследуемся от этого контрола и переопределяем ему функции, отвечающие за требующее коррекцию поведение.


Всяко бывает. В WPF, к примеру, совсем не так.

_>, но в крайне узких рамках. Ну или же мы можем наплевать на стандартный код и написать новый контрол с нуля, на базе div/span/canvas, что требует гораздо больших усилий.


Уверен? И почему именно с нуля? Почему в случае JS нельзя взять готовую библиотеку?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Web 2.0
От: alex_public  
Дата: 23.11.19 14:46
Оценка:
Здравствуйте, Ops, Вы писали:

_>>Ну и да, это плохо для случая потребности высокой производительности таких вызывов.

Ops>Это плохо потому, что любое действие с DOM надо либо оборачивать в JS, либо на нем и писать, размазывая логику. Это очень неудобно при написании, даже неудобнее использования монструозных js-фреймворков.

Ну вот для Питона уже сделали полную обёртку в готовой библиотеке. Т.е. я просто пишу:
from js import document

elt = document.getElementById("targetElement")
elt.innerText = "I am changed!"
elt.style.backgroundColor = '#ffcccc'

и всё работает — никаких знаний JS не надо. Понятно, что это внутри DOM вызывается через вызoв JS функции, и это архитектурно некрасиво и не эффективно. Но с точки зрения разработчика на Питоне, он про это может даже не знать. Ну а эффективнось и Питон...
Re[17]: Web 2.0
От: Mamut Швеция http://dmitriid.com
Дата: 23.11.19 14:49
Оценка: +1
M>>Что такое «классические библиотеки»? На дворе 2019-й год. Набор примитивов для веба сейчас хуже и беднее, чем Дельфи или там Qt образца 2000-го.
НС>Ты компоненты для Дельфи пробовал сам писать?

Ты компоненты для веба пробовал сам писать? Не убогое примитивное говно типа «еще одна панелька, которая скрывается по клику», а нормальный полноценный компонент. Ну какой-нибудь Tree Grid, который можно просто взять и вставить в любое место на странице.


dmitriid.comGitHubLinkedIn
Re[18]: Web 2.0
От: Ночной Смотрящий Россия  
Дата: 23.11.19 14:55
Оценка: :))
Здравствуйте, Mamut, Вы писали:

M>>>Что такое «классические библиотеки»? На дворе 2019-й год. Набор примитивов для веба сейчас хуже и беднее, чем Дельфи или там Qt образца 2000-го.

НС>>Ты компоненты для Дельфи пробовал сам писать?
M>Ты компоненты для веба пробовал сам писать?

Да. Ты на вопрос ответишь?

M> Не убогое примитивное говно типа «еще одна панелька, которая скрывается по клику», а нормальный полноценный компонент. Ну какой-нибудь Tree Grid, который можно просто взять и вставить в любое место на странице.


В том числе TreeGrid. А еще я TreeGrid писал для винформсов, так что есть с чем сравнить.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Web 2.0
От: Ops Россия  
Дата: 23.11.19 18:16
Оценка:
Здравствуйте, Mamut, Вы писали:

M>В следующем году официально закапывают:


M>- https://theblog.adobe.com/adobe-flash-update/

M>- https://www.chromium.org/flash-roadmap
M>- https://blog.mozilla.org/futurereleases/2017/07/25/firefox-roadmap-flash-end-life/

Да я про осла. Если где-то его еще используют, то для легаси, где никакого развития или нового софта не предвидится. А привыкшие к нему люди с него уходят, т.к. куча ресурсов в нем уже не работает.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: Web 2.0
От: Ops Россия  
Дата: 23.11.19 19:06
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ну вот для Питона уже сделали полную обёртку в готовой библиотеке. Т.е. я просто пишу:

_>
_>from js import document

_>elt = document.getElementById("targetElement")
_>elt.innerText = "I am changed!"
_>elt.style.backgroundColor = '#ffcccc'
_>

_>и всё работает — никаких знаний JS не надо. Понятно, что это внутри DOM вызывается через вызoв JS функции, и это архитектурно некрасиво и не эффективно. Но с точки зрения разработчика на Питоне, он про это может даже не знать. Ну а эффективнось и Питон...

Это для wasm? Клево. А с эвентами и исключениями что?
Но вообще это надо решать не "для питона", а в общем виде, и не обертками, а прямым доступом, пусть даже где-то с потерей типизации. Но такое впечатление, что это никому не интересно.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[19]: Web 2.0
От: Mamut Швеция http://dmitriid.com
Дата: 23.11.19 20:30
Оценка:
M>>Ты компоненты для веба пробовал сам писать?
НС>Да. Ты на вопрос ответишь?

Для Дельфи — нет. Что не мешало делать на Дельфи приложения хоть правой пяткой, не приходя в сознание. Потому что все, что требовалось — это положить компонент в окно. Удачи сделать то же самое с любым «компонентом» в вебе.

M>> Не убогое примитивное говно типа «еще одна панелька, которая скрывается по клику», а нормальный полноценный компонент. Ну какой-нибудь Tree Grid, который можно просто взять и вставить в любое место на странице.


НС>В том числе TreeGrid. А еще я TreeGrid писал для винформсов, так что есть с чем сравнить.


Ну и расскажи, насколько прекрасно и удобно вручную бороться с div'ами для отображения даже не самых сложных вещей, когда любой css-reset порушит люые самые лучшие начинания (если только, конечно, не прибивать все гвоздями к пискелям с помощью !important)

Тут вот народ столкнулся со всеми прелестями и решили что ну его к черту, и переписали все с нуля, включая свой собственный движок рендеринга: https://www.figma.com/blog/building-a-professional-design-tool-on-the-web/


dmitriid.comGitHubLinkedIn
Отредактировано 23.11.2019 20:32 Mamut [ищите в других сетях] . Предыдущая версия .
Re[12]: Web 2.0
От: anonymous Россия http://denis.ibaev.name/
Дата: 23.11.19 20:46
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>Они убоги, и на их основе «делать компоненты на основе этих примитивов» — это себя не любить.


А делать компоненты на чистом WinAPI, например — это любить себя?
Re[20]: Web 2.0
От: Ночной Смотрящий Россия  
Дата: 23.11.19 20:53
Оценка: :)
Здравствуйте, Mamut, Вы писали:

НС>>В том числе TreeGrid. А еще я TreeGrid писал для винформсов, так что есть с чем сравнить.

M>Ну и расскажи, насколько прекрасно и удобно вручную бороться с div'ами для отображения даже не самых сложных вещей, когда любой css-reset порушит люые самые лучшие начинания (если только, конечно, не прибивать все гвоздями к пискелям с помощью !important)

Намного проще чем делать TreeGrid на основе стандартных виндовых контролов.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.