That's exactly how Objective-Smalltalk started, and it's still very good at being just that.
https://blog.metaobject.com/2019/12/the-4-stages-of-objectiv...
However, it has grown to be, er, a bit more.
https://2024.splashcon.org/details/splash-2024-Onward-papers...
> SwiftUI should have unapologetically been a convenient, reactive wrapper over UIKit and AppKit,
I am also working on a UI "framework" I call InterScript that is (for starters) a wrapper over UIKit and AppKit, and basically solves what I perceive to be the biggest problems of Cocoa:
1. UI specification using object literals. This makes UI-creation very compact and readable. The following example (mostly) reproduces a SwiftUI "Form" example from Apple documentation:
#Grid{ frame: (20@20 extent: 400@340), #rows: [
[ #Label{ text: 'Name' }, #TextField{ stringValue: 'Taylor', frame: (200@24) } ],
[ #Label{ text: 'Email' }, #TextField{ stringValue: 'taylor@example.com', frame: (200@24) } ],
[ #Label{ text: 'Notifications' }, #NSSwitch{ state: 1 } ],
[ #Label{ text: 'Sounds' }, #NSSwitch{ state: 1 } ],
[ #Label{ text: 'Summary' }, #PopUp{ items: [ 'Daily', 'Weekly', 'Monthly' ] } ],
[ #Label{ text: 'Color scheme' }, #NSSegmentedControl{ segments: [ 'System', 'Light', 'Dark' ] } ],
[ #Label{ text: 'Text size' }, #Label{ text: 'Default' } ],
[ #Button{ title: 'Reset All Settings' } ],
] }.
There are actually even better ways of accomplishing this, but this should give you an idea.2. Better communication between model and UI by using the support in the language for polymorphic identifiers and dataflow. Because dataflow is in the language, it can be expressed succinctly without making it hidden magic like in SwiftUI. With dataflow and polymorphic identifiers, you also get a dataflow-constraint mechanism similar to Cocoa Bindings, but again with proper support and less magic.
Essentially the solution to this:
https://blog.metaobject.com/2014/03/the-siren-call-of-kvo-an...
There is more, for example cross-platform, MDA/Naked Objects/Direct2Web style simplification and web integration with HTMX and HTMXNative.