What is a stateless user interface?
blog.ezyang.com
What is a stateless user interface?
1–10 of 30 posts
Re: What is a stateless user interface?
#2Re: What is a stateless user interface?
#3Interfaces will end up like debuggers. Functional folds over explicit sophisticated state.
Re: What is a stateless user interface?
#4Interfaces will end up like debuggers. Functional folds over explicit sophisticated state.
Err, how is a debugger a functional fold?
ps: the idea is that the state is made explicit, so the user knows where and what to diagnose.
Re: What is a stateless user interface?
#5Re: What is a stateless user interface?
#6Earlier quoted context omitted.
Err, how is a debugger a functional fold?
machine-state -> command-dispatch -> machine-state' ~zero ? ps: the idea is that the state is made explicit, so the user knows where and what to diagnose.
The only other environment that manages to achieve this (and better) is smalltalk.
Re: What is a stateless user interface?
#7I was drive crazy by Gimp this morning because of this. The move tool has a mode: move layers/guides, move the selection or move a path. Sometimes, somehow the mode flips to "selection" and stays there, leaving the user unable to pick and move a guide line (even if the user clicks on the ruler first, which is usually the trick to get into a mode where you can pick a guide line). Just figuring out why it stopped worki…
What's tickling my brain at the moment is the idea that these complex apps might be better as languages first, just shipping with thousands of well-organized example scripts that cover all the bread and butter - in the same way that synthesizers moved towards being preset-centric over time, to the point where one of the big features of new VST plugins is the content they ship with and the ease of browsing it.
Re: What is a stateless user interface?
#8i can easily see that reducing state implies reducing the number of steps a user takes to solve a problem (since each step implies some state somewhere).
what i can't see is how it implies that we must implement a new feature. this seems to be the real driver behind solving the "revision pinning" problem in the article - the fact that it is preventing state from changing unexpectedly seems to be coincidental based on what the user actually desires. and actually the solution adds more state - pinned version numbers (or repo hashes, or URLs etc...)
personally when approaching these problems i try thinking about things like "what features are needed to solve the user problems?" and "how can the interface for features as simple as possible?". it seems a lot simpler as an approach, more intuitive, and can be extended to be made more useful (e.g. "how do i make feedback as clear as possible?"). some of these questions are very complicated to answer, especially since they might involve things like user's mood or past experiences... i think that just shows that this is a complicated problem space.
minimising statefulness feels sort of "necessary" rather than "sufficient", and only in some cases. i'd be curious if there is any proof or reasoning to show that it has desirable properties beyond the clear connection to reducing needless user interactions.
Re: What is a stateless user interface?
#9I was drive crazy by Gimp this morning because of this. The move tool has a mode: move layers/guides, move the selection or move a path. Sometimes, somehow the mode flips to "selection" and stays there, leaving the user unable to pick and move a guide line (even if the user clicks on the ruler first, which is usually the trick to get into a mode where you can pick a guide line). Just figuring out why it stopped worki…
Image editing is one of those great examples of the workflows being so diverse that no generalized interface solution will be very good for all of them. What's tickling my brain at the moment is the idea that these complex apps might be better as languages first, just shipping with thousands of well-organized example scripts that cover all the bread and butter - in the same way that synthesizers moved towards being p…
Let me configure two or more copies of the move tool, one configured for layers and one for selections. Let me give them different icons and let me position it in a custom toolbox.
Don't make me do the equivalent of swapping bits on a multi-bit screwdriver. I'm not a mobile handyman trying to save space and weight in a portable toolbox; I can afford to replicate the handle and shaft for each bit.
Re: What is a stateless user interface?
#10We need a computer-assisted predicate-oriented language. This will become the only UI we need.