Developer Tim Bray, of XML fame, has written an ode to The Sacred "Back" Button.
Younger readers will find it hard to conceive of a time in which every application screen didn't have a way to "Go Back". This universal affordance was there, a new thing, in the first Web browser that anyone saw, and pretty soon after that, more or less everything had it. It's a crucial part of the user experience and, unfortunately, a lot of popular software is doing it imperfectly. Let's demand perfection.
Why it matters · Nobody anywhere is smart enough to build an application that won't, in some situations, confuse its users. The Back option removes fear and makes people more willing to explore features, because they know they can always back out. It was one of the reasons why the nascent browsers were so much better than the Visual Basic, X11, and character-based interface dinosaurs that then stomped the earth.
Thus I was delighted, at the advent of Android, that the early phones had physical "back" buttons.
[...] Nowadays Android phones don't have the button, but do offer a universal "Back" gesture and, as an Android developer, you don't have to do anything special to get sane, user-friendly behavior. I notice that when I use iOS apps, they always provide a back arrow somewhere up in the top left corner; don't know if that costs developers extra work.
[...] People using your software generally have a well-developed expectation of what Back should do at any point in time, and any time you don't meet that expectation you've committed a grievous sin, one should remedy right now.
The undo function has been around since the beginning, though invented and reinvented several times. Some systems got it much later than others, but now its presence is universally expected.
(Score: 4, Interesting) by RamiK on Tuesday April 13 2021, @11:20AM
When protoyping I want my code easy to write and generic. When debugging I want my code easy to read and as explicit, imperative and static as C so I won't have to stop and think if everything going in and out is per expectations.
I believe what we actually want is a language that can be "compressed" into generics and state machines and "decompressed" out of generics losslessly without losing variable and function names and looking like assembly out of a debugger. Something akin to classroom java workflow where you're glued to the debugger since it's not clattered, only with actual editable code instead of looking at a stack.
I know there's a lot of hard problems and limitations for this sort of "specs". But nevertheless, I reckon a dual-language such as this will be a great generic language that you'd then embed some C and such in for the performance parts.
compiling...