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: 1, Insightful) by Anonymous Coward on Tuesday April 13 2021, @02:43AM (1 child)
Someone needs to invent a real Conservative browser for culture warriors to march ever onwards.
(Score: 1, Troll) by Azuma Hazuki on Tuesday April 13 2021, @11:35AM
They did. It's called "a cave wall and a stick of red ochre."
I am "that girl" your mother warned you about...
(Score: 5, Insightful) by Anonymous Coward on Tuesday April 13 2021, @02:49AM (18 children)
Tim Bray's big achievement was unleashing XML on the world. He should be tried for crimes against humanity. It took many years for the programming community to admit the XML emperor had no clothes and was basically not good for anything, being inferior to just about any alternative. Thank God that mistake is behind us.
(Score: 2) by hendrikboom on Tuesday April 13 2021, @04:01AM (11 children)
One useful thing XML accomplished which others didn't was namespaces for tags.
The rest of the notation should have been accomplished more simply.
(Score: 4, Insightful) by Anonymous Coward on Tuesday April 13 2021, @05:18AM (9 children)
The only reason XML took off was because the web was taking off back then, and XML looked like HTML, and everyone thought HTML must be the future because that's what webpages were. I am serious, and it is just as dumb as it sounds. Using a text markup language as a data language--completely inappropriate paradigm. You're not marking anything up. XML has no support for basic data types like dictionaries or lists. JSON was the obvious successor that fixed the fundamental stupidity of XML.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @05:25AM
Yeah just try to address the things people tried to do using regex D: my mind just melts when I see some of these shitpiles.
(Score: 5, Informative) by sjames on Tuesday April 13 2021, @05:41AM (2 children)
This exactly.
Then add all the marketing hype where people actually thought that two unrelated apps would magically inter-operate just because they both used XML. As if the industry hadn't JUST gotten over the idea that being CORBA compliant wouldn't, in fact, allow arbitrary unrelated apps to magically inter-operate.
Then they piled it deeper and claimed UML expressed as XML would magically allow the average PHB to produce clean working code! (seriously!) Personally, given a choice between that and monkeys with keyboards I would have bet on the monkeys.
(Score: 2) by digitalaudiorock on Tuesday April 13 2021, @01:46PM (1 child)
You know...all these same industry buzzword bullshit alarms go off every time I see anything about object storage. It's always struck me that storage should be dumb, and is arguably the last place you'd even want any of that bullshit. Yet just as with XML I tend to think there's a similar notion that just because an object has "intelligent metadata", everything in the world magically understands it. I think we've seen that movie before.
(Score: 2) by sjames on Tuesday April 13 2021, @08:33PM
Absolutely! It's not intrinsically a bad idea as a layer of a filesystem implementation (inode=object, extent=object), but the ways it will actually be marketed and used will certainly make a hash of it.
(Score: 3, Informative) by Anonymous Coward on Tuesday April 13 2021, @06:49AM (4 children)
Sure they can. Just add these to your DTD or translate to the appropriate schema:
<!ELEMENT dict (di*)>
<!ELEMENT di EMPTY>
<!ATTRLIST di key CDATA #REQUIRED>
<!ATTRLIST di value CDATA #REQUIRED>
<!ELEMENT list (li*)>
<!ELEMENT li (#PCDATA)>
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @12:49PM (1 child)
You are implementing dictionaries and lists in XML, but there is no native, dedicated syntax for them. That's a huge piece of critical, missing functionality in a data language. Scalars, dictionaries, and lists are about all you need!
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @08:58PM
I'm sorry, I misunderstood. What you really meant is that you needed TOOWTDI language instead of TMTOWTDI. Forcing your data into a predefined structure instead of using the structure already inherent in the data.
(Score: 2) by DannyB on Tuesday April 13 2021, @06:38PM (1 child)
Yes, that. Because of DTDs, when I edit various types of XML files, my IDE knows exactly what is allowed next. Any wrong tags or attributes are underlined in red . . . as I type.
If you think a fertilized egg is a child but an immigrant child is not, please don't pretend your concerns are religious
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @11:47PM
Oh you will love this new tool, it's called Clippy. Fixes your problems.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @01:15PM
(Score: 2) by canopic jug on Tuesday April 13 2021, @06:40AM (1 child)
Yeah. Right. I can see documents, such as web pages, being done all in JSON.
Money is not free speech. Elections should not be auctions.
(Score: 1, Insightful) by Anonymous Coward on Tuesday April 13 2021, @07:05AM
The greatest strength of XML was its greatest weakness. It is too powerful and flexible. You can do almost anything with their schema when you move from DTDs to XSDs and beyond. The problem with that power and flexibility is that you had everybody reinvent the wheel and no real effort to come up with common schemas to allow easy interchange as originally imagined. Therefore, less powerful and simpler formats, like JSON, YAML, and more took over.
(Score: 2) by RamiK on Tuesday April 13 2021, @07:45AM (3 children)
DOM, DocBook, ePub, MusicXML...
The thing is, it's a really convenient prototyping tool. You can serialize pretty much any object-oriented data structure as is as if casting integers to floats without having to bother giving the file structure a second thought. People bring up .json, s-exp and .yaml as alternatives. They're right and they are better. But the whole point in choosing .xml is to temporarily put aside design considerations so you can focus on bugs and features that actually sell and later revisit that part of product.
The problem is the follow up where you're out of early development and suppose to finalize the specs and get a production ready file format to match but everyone are telling you that you have a working solution and it has all these great visualization tools that make pretty charts and are useful for debugging so why bother...
In the end you're left with a terrible but working solution. So to that effect, at least it's standardized and have libraries in every language so it's not as buggy as it could have been if every project would have baked their own.
And that right there is the story of every in tech.
compiling...
(Score: 2) by fadrian on Tuesday April 13 2021, @09:08AM (2 children)
You can serialize pretty much any object-oriented data structure as is as if casting integers to floats without having to bother giving the file structure a second thought.
You may not have noticed this, but OO is not what it used to be. It's now being seen as a swamp of unmanageable global state packed into object silos which can't easily be reasoned about. It will ultimately be subsumed by the functional programming paradigm just as OO superseded procedural program models - functional code is just that much easier to write/understand. And I say this as a programmer who cut his teeth on imperative programming languages and then moved to OO - from Smalltalk to cfront (Bjarne's first version of C++) to Java to Ruby and Python and just about everything in between. I've now moved on to functional languages - Clojure, F#, and Haskell - and can say that the code in this space is much better - easier to write, more generic, and usually thread-safe without all the complicated mechanisms of doing that in OO. So pointing out that anything was great for OO is like pointing out technology that was great for large prop planes in the early days of jets - interesting, but in the long run, irrelevant.
That is all.
(Score: 1, Insightful) by Anonymous Coward on Tuesday April 13 2021, @09:41AM
object-oriented data structures != object-oriented programming paradigm
Just because your data structure is object-oriented does not mean you have to use an OOP language and just because you are using an OOP language does not mean you have to use an object-oriented data structure. Some things are easier to think about as objects with attributes or are objects with attributes, so it is just easier to keep the data structured that way. Other things are not objects with attributes or are difficult to think of that way, so it is just easier to structure data in a different way. That's all that means. You are free to program around them however you please. For example, you can do object-oriented data structures in Haskell just fine, but they aren't objects in the OOP sense; and you can do non-object-oriented data structures in Smalltalk, but they are still objects in the OOP sense.
(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...
(Score: 4, Insightful) by Booga1 on Tuesday April 13 2021, @03:40AM (4 children)
I get the point they're trying to make, but the comparisons are pretty bad. They could have done it better without trying to base the start of their argument with some absurd confusion between a feature in a web browser and wildly unrelated concepts such as: a programming language, a windowing system, and user interfaces.
(Score: 2) by FatPhil on Tuesday April 13 2021, @07:17AM (3 children)
However, I'm sure we can agree - browser back buttons were so much better than ASCII!
(Was that a stupid joke at the donkey-like stupidity of braying Bray, or was it a subtle insight into the fact that gopher provided you with a way of backing out before any back button appeared in any graphical browser...)
Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
(Score: 3, Interesting) by driverless on Tuesday April 13 2021, @08:52AM (2 children)
Interesting that you mention that, Bray brays that the functioning of back has been mangled in all sorts of broken ways by different apps so that what you think is a normal back action changes depending on which app you're in. My immediate reaction was "sounds like X11 WMs, or Unix distros, or ...". If geeks built cars, on one of them the steering wheel would steer the car, on another it would change gears, on a third it would wind the windows up and down, on a fourth it would change radio stations, on a fifth...
(Score: 3, Interesting) by FatPhil on Tuesday April 13 2021, @10:43AM (1 child)
Fortunately w3m and lynx seem to still do the right thing.
Thank god some software is unmaintained - perhaps it can stay undefiled by the wrongthink.
Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @11:36PM
> All I think is necessary for a back button is that it return me whence I came, nothing more.
By which you mean the rendered viewport content? Works for me on HTML sites, doesn't work on many XMLHttpRequest laden corporate monstrosities. We once had the same thing with Java applets, ActiveX and then Flash - fresh paycheck for every cycle of obsolescence.
(Score: 5, Informative) by drussell on Tuesday April 13 2021, @03:41AM
Back when most "computing devices" had actual keyboards, there was often a key labelled "ESC" which usually provided similar functionality.
(Score: 1, Troll) by melyan on Tuesday April 13 2021, @03:41AM (3 children)
I am the smartest person on earth and I have no ego. I generally don't need the back button.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @03:31PM (2 children)
树大招风
--
草上之風,必偃
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @09:29PM (1 child)
כִּי רוּחַ יִזְרָעוּ, וְסוּפָתָה יִקְצֹרוּ; קָמָה אֵין-לוֹ, צֶמַח בְּלִי יַעֲשֶׂה-קֶּמַח--אוּלַי יַעֲשֶׂה, זָרִים יִבְלָעֻהוּ.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @09:53PM
إِن يَشَأْ يُسْكِنِ الرِّيحَ فَيَظْلَلْنَ رَوَاكِدَ عَلَىٰ ظَهْرِهِ إِنَّ فِي ذَٰلِكَ لَآيَاتٍ لِّكُلِّ صَبَّارٍ شَكُور
(Score: 1, Informative) by Anonymous Coward on Tuesday April 13 2021, @03:45AM (14 children)
Even firefox has at some point succumbed to making backspace (go back) "vanish". For the frustrated, some documentation to fix the issue:
about:config
browser.backspace_action = 0|1|2
0 - backspace goes back in history
1 - backspace goes up in a scrolled page
2 - disabled
(Score: 5, Insightful) by hemocyanin on Tuesday April 13 2021, @03:59AM (7 children)
Everyone knows I'm an old fogey by now and as an old fart, I get to rant -- "modern" browsers are getting more annoying and I fully expect them to remove the back button at some point simply because it is useful and convenient as they try to phonicate everything in the world. Kind of like how the menu in Brave is gone and apparently there is no way to get it back except by adding in some extension. So instead of a fast low effort user interface with a logically divided menu instantly accessible, you have to click the little square in the upper right to reveal a drop down menu, then find your menu item in that drop down, then proceed. No more click, bang, done. And it isn't like we're all stuck on EGA monitors -- there's plenty of real estate for a menu.
Even with websites though -- I'm thinking of a financial site I have to go to -- the back button fails to work for a lot of the areas. The only way to go back is to go forward in a circle until you're where you wanted to be -- it turns what would be one step to go back, into three steps forward to get back to where you want to be. I hate that too.
And then there's my lawn ...
(Score: 2) by istartedi on Tuesday April 13 2021, @04:18AM (2 children)
The only way to go back is to go forward in a circle until you're where you wanted to be
Welcome to the web browsing wizard. This wizard will guide you through the process of surfing web pages. Click next to search for a web page.
Appended to the end of comments you post. Max: 120 chars.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @04:39AM (1 child)
Why do I now have the image of Gandalf behind a console and it won't get out of my head?
(Score: 1) by hemocyanin on Tuesday April 13 2021, @05:43AM
Gandalf would do OK. I'm thinking more of Mr. Sideney (from Terry Pratchett's Hogfather) for the web browsing wizard: https://www.youtube.com/watch?v=n2nYXLT8T0Y&t=1230s [youtube.com]
(Score: 1) by fustakrakich on Tuesday April 13 2021, @04:33AM (1 child)
Like trying to find reverse in a Soviet tank, eh?
La politica e i criminali sono la stessa cosa..
(Score: 2) by kazzie on Tuesday April 13 2021, @08:01AM
You'd be better off trying an Italian tank. 1 forward gear, 4 reverse!
(Score: 3, Informative) by driverless on Tuesday April 13 2021, @08:54AM
Also known as escape-room UI. Very popular in the last ten years or so, particularly on mobile devices.
(Score: 2) by Reziac on Wednesday April 14 2021, @02:48AM
Here, you can use my soapbox, and my megaphone, and my lawn... absolutely hate this "modernization" of what was once perfectly usable software. Gimme back my damn menus. And my BACK button.
Oh, know why the Moz family, when the mouse pointer is over an image, has no BACK option in the context menu? Cuz back in the 1.x era, whichever dev was in charge didn't like "clutter" (that's what he called it), and removed it. There was an uproar in the newsgroup and someone took a vote: 700 for keeping BACK, 2 for removing it (one of which was the aforementioned dev). Dev said "I like it this way so this is how it stays." (In just about those words.)
May seem trivial but enough of these "trivial" changes and it progresses from nuisance to annoying to unusable.
And there is no Alkibiades to come back and save us from ourselves.
(Score: 3, Informative) by maxwell demon on Tuesday April 13 2021, @05:24AM
Of course the classic function for backspace in non-editor text display (older than the web!) is to scroll up in page. Going back in history in the browser is done by Alt+Left.
The Tao of math: The numbers you can count are not the real numbers.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @05:27AM
Uh-oh, the official P(olitically) C(orrect) version in recent versions of FF is.... alt-leftArrow. Really intuitive guys. You can tweak about:config but to no avail.
(Score: 2) by inertnet on Tuesday April 13 2021, @07:19AM (2 children)
On Android, Firefox doesn't even close pages anymore when using the back button. Very annoying because you have to close every page manually now.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @01:35PM (1 child)
It's not annoying, it protects you from accidentally closing a tab if you go one too many back. It's literally just two keystrokes if you want to close the tab, hardly a significant inconvenience.
I hate when browsers close tabs without me telling them to.
(Score: 2) by inertnet on Tuesday April 13 2021, @09:14PM
FF used to close a page with the back button and displayed an undo button for a short while. That was perfect, current behavior is annoying because there seems to be no option to get the old way back.
(Score: 2) by driverless on Tuesday April 13 2021, @07:57AM
Just another one of the eight million config changes I have to make on every Firefox install to undo all the fuckery they've imposed on it...
(Score: 1, Funny) by Anonymous Coward on Tuesday April 13 2021, @04:52AM (1 child)
Welshing button.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @05:29AM
https://www.thefreedictionary.com/welshing [thefreedictionary.com]
Aha, we arsh at shea captshun, welshin along the wavsh.
(Score: 5, Insightful) by bradley13 on Tuesday April 13 2021, @06:22AM (3 children)
How many websites either don't use the back-button properly, or actively disable it?
Just yesterday, I was on a website where you could click within the page, and the content within the page would be replaced. Intuitively, I expected the back button to take me back to the previous content, but: it took me to the previous page, because everything I had been doing was script-driven. Non-intuitive.
At the other extreme, a shopping site I was on earlier this week, where they had apparently actively replaced the browser history: the back button was nothing but a page-refresh.
So, yes, it's a nice thing. But it's not free, and it still needs to be used properly.
Everyone is somebody else's weirdo.
(Score: 3, Informative) by Booga1 on Tuesday April 13 2021, @06:52AM (1 child)
Yeah, I've hit a few sites that disable the back button like that. Sometimes pressing back twice rapidly works. Otherwise it's time to "click and hold" on the back button to see if I can find the page I want to go back to is reachable or not.
Sometimes I swear the people designing the sites don't ever actually use the site. If they did, they'd see how frustrating their own sites are.
(Score: 1, Insightful) by Anonymous Coward on Tuesday April 13 2021, @08:56AM
Hmm, most of the time I think it plays out more like this:
boss: "Jones, you DO like your paycheck, and you DO want that 2% raise. So now add this fuckery to the code..."
(Score: 5, Insightful) by shortscreen on Tuesday April 13 2021, @12:50PM
My beef is with websites that force the page to reload when going back. I expect not to have to wait for a page that I've already seen five seconds ago to load again. As a result of this nuisance, my current practice regarding pages I might want to return to is to always open links in a new tab so that the first page remains open in its own tab.
(Score: 2) by richtopia on Tuesday April 13 2021, @02:53PM (1 child)
Serious question: is there a user manual for Android? I do miss the physical back button from early Android phones, and I didn't know there was a swipe stroke to emulate this.
I hate smartphones. But I cannot avoid them.
(Score: 2) by cmdrklarg on Tuesday April 13 2021, @09:33PM
My newest phone came with the swipe controls nonsense; absolutely hated it.
I found the setting under System - Gestures - System Navigation to set it back to the 3 button navigation. YMMV.
Answer now is don't give in; aim for a new tomorrow.
(Score: 2) by acid andy on Tuesday April 13 2021, @04:26PM
Confirm your ebay bid; format your hard drive; empty your trash can; switch off your computer--Argh,
UNDO! UNDO!BACK! BACK!Master of the science of the art of the science of art.
(Score: 2) by acid andy on Tuesday April 13 2021, @04:29PM (2 children)
Sending a drunken email to your boss as well.
Master of the science of the art of the science of art.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @05:08PM (1 child)
Supposedly gmail's web interface has an unsend button - it buffers the email for 30seconds or something before sending it on so you can change your mind.
At least I remember it being announced sometime back, it may not exist anymore.
(Score: 0) by Anonymous Coward on Tuesday April 13 2021, @08:25PM
I remember using that, was really nice at my last job (new one uses outlook... so I don't know if it is still there).
The 30s lag time was fast enough no one cared, and the times that I sent a thing and then realized I forgot to append the file (or whatever) were so nice.