upvote
I made several large Cocoa (macOS AppKit, Obj-C) apps in 2004-2018 using the classic Smalltalk-inspired MVC patterns and this was never a problem. Sometimes writing the controller boilerplate was boring, but at least there were no observer loops, it was simple to debug where things happened, and undo/redo were reliable to implement through the framework.

Maybe Microsoft just never was very good at these 1990s style GUIs?

reply
WinUI3 is horrible, but that is an implementation detail. WPF isn’t so bad (of course for business reasons no one should use either).

I still see WPF and AppKit as both being superior UI technologies to web+react, if you ignore the challenges of distribution.

reply
> nothing but mutable objects of indeterminable state getting caught in infinite-loops or unbound recursion due to INotifyPropertyChanged

Rant on brother/sister. I'm a year into building a large WPF (because reasons) app for my employer and some days its very difficult.

reply
> ...yes, Redux (not React) deserves to be #1,

This is a rather perplexing statement to make.

If anything, Redux only plays a role in adding syntactic sugar over React's support for reactive programming.

More importantly, the general guidelines are that you should only bother with Redux if your SPA is already considerably complex.

reply
> Redux only plays a role in adding syntactic sugar over React's support for reactive programming

Redux doesn't have anything to do with any kind of syntactic-sugar for Reac.

> the general guidelines are that you should only bother with Redux if your SPA is already considerably complex

If one already has an (non-React) SPA which is not already built following Redux then you're stuck with what you've got; it isn't really possible to take an existing SPA of any complexity and deciding to "make it use Redux" because it completely up-ends practically every aspect of SPA application-design, at least as far as how "traditional" (non-React) SPAs do things.

If you'll permit me to oversimplify: I tell people that React is a basically an opinionated Redux kernel wrapped around a JSX-based DOM+component/widget system (, which then means you now need a JS build system too); or conversely: Redux is like React, except without JSX components.

...or am I misunderstanding you?

reply