joonas-fi / joonas.fi

My personal blog
https://joonas.fi/
Apache License 2.0
3 stars 1 forks source link

Future of GUIs #113

Open joonas-fi opened 7 months ago

joonas-fi commented 7 months ago

just now as I write this a few minutes ago I was writing a message on a chat app.

a software update popup popped up which stole the focus.

as I was writing a message before the focus was stolen, the act of me writing the message accidentally had me press a key which was a keyboard shortcut in the new popup (software update) - the shortcut was something along line of "start updating" so I had accidentally given permission to update the system.

for UX this is entirely unacceptable, this is as shitty behaviour as it gets. I made an important decision by accident.

but software-wise I don't think it makes any sense at all to try to add behaviour to each application to try to prevent this. something like if user was typing somewhere right now and focus was given to new window then we should suppress user input for a short delay to prevent user making mistakes. but yet we shouldn't add delays to use cases where user knew their action results in popup and they just want to quickly respond to the popup's question..

I'm getting to the argument that the only way this is solvable is by centralized logic. So we'd need to be increasing semanticity of the system (to ask the centralized logic to do the heavy lifting) and that kind of implies declarative UIs. i.e. have less concrete implementation in day-to-day GUI code and have the logic correctly implemented in a centralized place.

we have seen time and time again that if we give too much responsibility to your average code, it won't be good. even shops (or especially?) with huge resources like Google or Amazon make horrible UX.

that kind of implies that HTML or HTML-like systems are the only way to go forward if we want to maintain any sense in this shit-show.

HTML has already somewhat failed by letting the website authors dictate the behaviour too much. things like websites disabling context menus or disabling paste to email or password inputs. yet somehow HTML is way too complex but yet too simplistic - we still don't have a working date / datetime picker / autocomplete inputs without large JavaScript components.

some directions: