I'm sitting here looking at a Samsung OLED that has lost bonding on it's panel (horizontal stripes).
The result is that that corporation is forever blacklisted.
It's a game of complexity management, in the end there were two strategies
- C# -> Absorb the creativity of chip designers in bytecode.
- C++ -> Absorb the creativity of chip designers in template code.
I don't want to be a party pooper here, but, I am so that's how it comes out.
In code declaration of user interfaces was old hat in Qt, and wxWidgets
Why no interpreter? Recompiling to fritz with UI is just a bore.
Specifying things declaratively within the language itself goes far beyond simply constructing widgets by calling library functions.
This technique is utilized in modern frameworks like Jetpack Compose, Flutter and SwiftUI and unlocks several powerful features, such as flexible data binding and the ability to rebuild the widget tree on demand, features that would be quite difficult to implement in other libraries.
Wouldn’t pure data based definition scheme enable all of the above in any case?
If the underlying model is tree, then any graph based configuration data could be used to build it.
I mean underneath it could be implemented using the api as is, but as a C++ dev I don’t see any compelling reason to be interested in this.
You can do the most astounding things nowadays in 100fps. I’m not sure if manually handcrafting object initialization trees to a ui framework is something I want to do as a developer in 2024.
This is not intended as a put-down! This must have been enormous amount of work.
I would love to hear the rationale for why exposing the user API as a class structure like this - I’m sure there are good reasons and would love to hear them.