Здравствуйте, Kolesiki, Вы писали:
K>Image: HQlYNh4.png
K>Ширина, высота,... что?? ТекстБлок? А он там с какого перепугу?
Разные люди по-разному визуализируют дерево контролов UI. Дети контрола это всего лишь ещё одно свойство. Его можно записать явно, как Children = {}, а можно принять договорённость, что все элементы находящиеся внутри других, будут автоматически добавлены в Children. Суп из свойств и детей корёжит только по-началу, особенно после XML. Там ведь свойста обычно задаются атрибутами, а дети внутренними нодами. Но по факту ведь весь XAML превращается в "элемент.свойство = ...". И где находится присвоение детей, а где "обычных" свойств, совсем не важно.
K>Понятно, что "умный парсер" всё расскажет и покажет, но это неправильно. Распечатайте ч/б эмми-код и поймёте, что у вас нет никакого желания разбираться, кто есть кто.
Я очень быстро привык к тому, что обычные свойства заканчиваются двоеточием, а контролы имеют вид "ИмяЭлемента {}". Но и язык то я придумывал в соответствии с собственным пониманием прекрасного. Вполне вероятно, что другой человек и через пол года будет плеваться на синтаксис.
K>Я тоже не один день размышлял, как можно красиво-декларативно задавать UI (и тоже попался на удочку JSON), но решил, что тут надо думать глубже и создавать UI-язык без оглядки на существующие решения. Прям вот смело брать и запиливать свой DSL, с конкретной заточкой на сущности "контрол проперть-значение коллекция-контролов". Ну и сахар не забывать, конечно.
Собственно, Ammy — это и есть отдельный UI язык. Некоторые оглядки там всё-таки были (например QML). Но в целом, я думал о том как создать язык именно для замены XAML, без компромиссов. С удовольствием обсужу альтернативные варианты, просто хотя бы из интереса к теме.