Последнее время встречаются идеи GUI со сложным databinding/constraint механизмами.
Например как Adam от Adobe где могут быть сложные связки типа
relate
{
x <== y + 5
y <== when(cond) x-10 : y — 5
итд.
}
Вот меня мучают сомнения , не кажется ли вам что такие выражения должны являтся инвариантами модели данных
а не иплементится на стороне view ?