@aeric - B4X also simplifies databinding. Let's say you have a list of custom views containing two buttons and a label. In XAML while I love how databinding
works, I love how
simple it is in B4X. (All you do is loop through your source list, create a B4XView, load the layout, assign values to control tags[1] and then add that view to your CustomListView.)
I thought I would checkout .NET MAUI and while XAML has some good stuff (databinding) I do agree that it's a mess. For example, in StackLayout you have "HorizontalOptions" and "VerticalOptions". However,
those do nothing and haven't been removed. I do however, love the premise of .NET MAUI Blazor Hybrid but, that can probably be replicated in B4X with the
HttpServer (NOT jServer) library and WebView.
[1] The best feature of B4X is the ability to assign whatever you want (primitive types or even custom types) to each control's tag property.