Re[7]: C# vs Dart - перспективы
От: Alekzander  
Дата: 29.08.23 18:20
Оценка:
Здравствуйте, Skorodum, Вы писали:

A>>Попробуй на плюсах типичный сложный случай реализовать, где в одном куске ивент хендлер, лямбда, замыкание, отложенный вызов, и создание кучи объектов. И поуправляй памятью для всего этого дела. А при работе с разметкой это именно типично. Если у тебя реально rich UI приложение, а не очередной хелло-ворлд.

S>В мире C++ богатый UI пишется на декларативном QML

Это случайно не тот самый ML, где id, source, height и color смешаны в одном тазике? Как в HTML до разделения доменов по DSL'ям.

А вообще, я говорил исключительно про работу с UI, где удобно делать именно такие кунштюки ("в одном куске ивент хендлер, лямбда, замыкание, отложенный вызов, и создание кучи объектов"). И где крайне неудобен C++. Про бизнес-логику я ничего не говорил. Связка (HTML + CSS + JS) + C++ очень хороша для многих задач. Я почти всегда её и использую.
Re[8]: C# vs Dart - перспективы
От: Skorodum Россия  
Дата: 30.08.23 11:20
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>Это случайно не тот самый ML, где id, source, height и color смешаны в одном тазике? Как в HTML до разделения доменов по DSL'ям.

Стили для контролов и в QWidgets и в QML есть.
Другое дело, что очень часто в QML работа идет с более низкими примитивами типа Rectangle, и поддержку стилей надо самим реализовать при необходимости (это тривиально).

A>А вообще, я говорил исключительно про работу с UI, где удобно делать именно такие кунштюки ("в одном куске ивент хендлер, лямбда, замыкание, отложенный вызов, и создание кучи объектов"). И где крайне неудобен C++.

Тут согласен: императивный подход для сложного UI не самое лучшее решение. Поэтому и придумали QML, Slint и т.п.

A>Про бизнес-логику я ничего не говорил. Связка (HTML + CSS + JS) + C++ очень хороша для многих задач. Я почти всегда её и использую.

Рабочее решение, но QML как язык куда приятнее HTML, IMHO. Плюс доп.расходы на порядом меньше.
Re[9]: C# vs Dart - перспективы
От: Alekzander  
Дата: 30.08.23 12:17
Оценка:
Здравствуйте, Skorodum, Вы писали:

A>>Это случайно не тот самый ML, где id, source, height и color смешаны в одном тазике? Как в HTML до разделения доменов по DSL'ям.

S>Стили для контролов и в QWidgets и в QML есть.
S>Другое дело, что очень часто в QML работа идет с более низкими примитивами типа Rectangle, и поддержку стилей надо самим реализовать при необходимости (это тривиально).

A>>А вообще, я говорил исключительно про работу с UI, где удобно делать именно такие кунштюки ("в одном куске ивент хендлер, лямбда, замыкание, отложенный вызов, и создание кучи объектов"). И где крайне неудобен C++.

S>Тут согласен: императивный подход для сложного UI не самое лучшее решение. Поэтому и придумали QML, Slint и т.п.

Декларативность — понятие очень многозначное. Есть декларативность разметки. Есть декларативность адресации контролов (селекторы). Есть декларативность на уровне языка управления (поддержка лямбд вместо циклов).

Многие эти декларативности присутствуют в HTML, но не в QML. А другие, связанные с языковым уровнем, худо-бедно поддержаны в C++ без помощи Qt, но там нет автоматического управления памятью, который не менее важен для UI, чем декларативности. Поэтому я и дописал в конце: "И поуправляй памятью для всего этого дела".

Так-то, в скрипт (JS) вынесено всё самое императивное из связки HTML/CSS/JS. Декларативное оставлено в HTML, CSS и в языке селекторов. Сборщик мусора + намного более приятный синтаксис — вот чем, в первую очередь, зачётны скрипты в UI.

A>>Про бизнес-логику я ничего не говорил. Связка (HTML + CSS + JS) + C++ очень хороша для многих задач. Я почти всегда её и использую.

S>Рабочее решение, но QML как язык куда приятнее HTML, IMHO. Плюс доп.расходы на порядом меньше.

Не знаю, кому там что приятно, но сравнивать с титаническим HTML какие-то местечковые технологии... всякие QML, XAML... Я подписан на несколько дайджестов, где постоянно выкладывают фокусы, связанные с UI, сделанные на HTML. Конкурсы проводятся, жизнь бурлит. А покажи хоть один дайджест для QML-девелоперов. Или конкурс
Re[10]: C# vs Dart - перспективы
От: Skorodum Россия  
Дата: 30.08.23 13:40
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>Декларативность — понятие очень многозначное. Есть декларативность разметки.

Было бы интересно увидеть пример не декларативной разметки.

A>Есть декларативность адресации контролов (селекторы).

Что ты имеешь в виду? Привиди пример.

A>Есть декларативность на уровне языка управления (поддержка лямбд вместо циклов).

Лямбды ортогональны циклам и к декларативности отношения не имеют.

A>Многие эти декларативности присутствуют в HTML, но не в QML.

Декларативность в QML это просто и наглядно:

Rectangle {
width: 100
height: 200
Rectangle {
width: parent.width / 2
height: parent.height / 3
}
}


A>А другие, связанные с языковым уровнем, худо-бедно поддержаны в C++ без помощи Qt, но там нет автоматического управления памятью, который не менее важен для UI, чем декларативности. Поэтому я и дописал в конце: "И поуправляй памятью для всего этого дела".

Для связки C++/QML о памяти не нужно думать в 99%.

A>Так-то, в скрипт (JS) вынесено всё самое императивное из связки HTML/CSS/JS. Декларативное оставлено в HTML, CSS и в языке селекторов. Сборщик мусора + намного более приятный синтаксис — вот чем, в первую очередь, зачётны скрипты в UI.

Так это ровно также в QML: если нужно что-то императивное, то есть JS/Python/C++.

A>Не знаю, кому там что приятно, но сравнивать с титаническим HTML какие-то местечковые технологии... всякие QML, XAML... Я подписан на несколько дайджестов, где постоянно выкладывают фокусы, связанные с UI, сделанные на HTML. Конкурсы проводятся, жизнь бурлит. А покажи хоть один дайджест для QML-девелоперов. Или конкурс

Сядь в современный автомобиль: с выской вероятностью интерфейс написан на C++/QML.
Re[11]: C# vs Dart - перспективы
От: Alekzander  
Дата: 30.08.23 18:32
Оценка: :)
Здравствуйте, Skorodum, Вы писали:

A>>Декларативность — понятие очень многозначное. Есть декларативность разметки.

S>Было бы интересно увидеть пример не декларативной разметки.

Ну чего дурачка-то валять? "Есть декларативность разметки[, противопоставляемая императивности создания контролов кодом]".

A>>Есть декларативность адресации контролов (селекторы).

S>Что ты имеешь в виду? Привиди пример.

В старину были адреса: Кемская волость, село Пятаково, дом купца Калашникова (зелёный такой).

По аналогии, сейчас можно разыскивать секцию с обратной формой, поле для ввода текста, обязательно зелёное.

Если ты будешь перебирать контролы, пока не найдёшь обладающий всеми свойствами, это будет императивный подход. А можно получить одним декларативным запросом, если адресация селекторная (.feedback-form input.green). Сейчас синтаксис этих селекторов настолько развит, что это почти SQL уже

А если просто завести по переменной на каждый контрол и хранить ссылки, то это перестанет быть адресацией. Это будут шорткаты типа "доставьте посылку клиенту Васе".

A>>Есть декларативность на уровне языка управления (поддержка лямбд вместо циклов).

S>Лямбды ортогональны циклам и к декларативности отношения не имеют.

Да неужели. Лямбды позволяют описывать задачу, типа "трансформируй коллекцию так-то", в отличие от циклов, где тебе надо её пошагово решать.

A>>Не знаю, кому там что приятно, но сравнивать с титаническим HTML какие-то местечковые технологии... всякие QML, XAML... Я подписан на несколько дайджестов, где постоянно выкладывают фокусы, связанные с UI, сделанные на HTML. Конкурсы проводятся, жизнь бурлит. А покажи хоть один дайджест для QML-девелоперов. Или конкурс

S>Сядь в современный автомобиль: с выской вероятностью интерфейс написан на C++/QML.

Я лично делал два проекта для автомобильных интерфейсов, если что. А вообще, я, как бы, не об этом. Я о том, что сейчас именно HTML это cutting edge для интерфейсостроения. Просто не надо ассоциировать HTML исключительно с гугловским ожиревшим движком или, допустим, с сервером в отдельном процессе, про который тут выше ныли. Это вещи несвязанные. Бывает, что удобно делать веб-сервер, а бывает, что нет. Я вот думаю об одном проекте, где программа сможет подключаться к любым своим инстансам на любых машинах. Там, конечно, веб-сервер будет оправдан.
Отредактировано 30.08.2023 18:54 Alekzander . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.