GUI Architectures (2006)
martinfowler.com
martinfowler.com
I suspect we will see somewhat of a revolution in terms of client side development in the coming years - with a vast reduction in complexity and huge increase of programmer productivity.
That is very optimistic looking at the current state of client side development with it's ever changing Javascript, Babel, Typescript, whatever script, Webpack, with HMR?, React or Vue? Angular? Flux? Redux? Isomorphic? Linters? Testing? CI? CSS/???SS or inline?, some NPM modules maybe?, and so on.. Sorry for me being a bit more pessimistic here.
Have you ever tried to build a UI with Qt or JUCE?
And the parent is obviously implying QT/JUCE are much harder to create a GUI than js/html/css/etc.
I was just as pessimistic as you wrt frontend development, I had dropped it off altogether. Elm made frontend dev enjoyable again. Can't recommend it enough.
If someone wants to talk about elm and how it is to develop with it, feel free to drop me a line. Email is on profile.
Frege looks promising for Android, in particular: https://github.com/Frege/frege
The existence of STEPS is actually one of the very few things that keeps me motivated to continue programming - maybe all that complexity isn't so essential after all. :)
TBAG was close enough to the idea (maybe closer than most JS implementations!), in C++ in 1994.
For papers see http://conal.net/papers
* The MODEL is something like a web server
* The VIEW is something like a browser
* The CONTROLLER is something like the Windows start menu
Trygve literally writes:
"A view (=browser) is attached to its model (=server) and gets the data necessary for the presentation from the model by asking questions (=submitting queries). It may also update the model (=posting) by sending appropriate messages. A controller (=start menu) provides the user with input (=menu items) by arranging for relevant views (=windows) to present themselves in appropriate places on the screen."
Hardly the best example of an MVC controller (even if they still are controllers).
Model: JavaScript
View: HTML templates and css
Controller: Browser engine
Case in point: to you, it seems obvious that the controller is like the Windows start menu. To me, that doesn't make any sense at all.