Inside out

Recently the question of whether browsers should have a View Source function has reared its head again. Chris Coyier says no, as do Tom Dale and Christian Heilmann. Jonathan Snook says yes they should.

The argument against essentially boils down to this: the browser devtools are better. This is undeniably, absolutely the truth. You can not just see the original HTML source of a page but manipulate it, drill down into it, see it beside the page itself and see which parts correspond. Everyone who develops for the web spends most of their day in the devtools, and rightly so. They are enormously powerful. View Source… isn’t. It’s a throwback, a historical legacy back from the days when you couldn’t introspect a page, couldn’t fiddle with things at runtime. If something was wrong with the page you were building, you went back to your editor and tentatively changed a thing, and then went back again to the browser and hit Refresh to see if you’d fixed it. Debugging blind, like finding your way through a cave with no lights on. You were quite likely to be eaten by a grue. Things are better now.

There are minor reasons why View Source is a good idea. One of them is that it’s an easy way to see the source you were actually given, before the in-page JavaScript started screwing around with it. I don’t use this a lot, but I do use it. It’s one of those small but handy features; a little big detail.

Another is: there are twenty years of simple documentation saying “you can see what this web page does just by hitting View Source”.

Yet another is that the devtools are pretty confusing if all you want to do is look at the source of a page. This is (I think) similar to Jon Snook’s arguments, linked above: “The sites some build may be simple static sites, befitting of a simple View Source … Just because you don’t need those tools doesn’t mean that somebody doesn’t need those tools.”

The major reason to keep View Source around is… well, time for a little story.

Google have a search app, on Android phones. The Google search bar at the top of the Android home screen (the one you can’t get rid of evn if you want to, without extreme measures) shows query results in a thing which is almost but not quite a web browser. The results look like the normal Google search results you’re used to from searching in the browser, but it’s actually a separate app. And that’s fine; you can see the results, and tap them, and a result opens in a browser, and everything’s good. I found this pretty useful, until the first time I did an image search and then long-pressed one of the images to open it on its own. And… I didn’t get the popup menu. Because this thing isn’t really a browser. It’s a browser but with all the bits that let you look under the surface turned off, because you don’t need them.

I do not like that attitude. I like that the web is made up of separate bits that you can see if you want to. You can understand how it works by piecing together the parts. It’s not meant to be a sealed unit, an appliance which does what the owner wants it to and restricts everything else. That’s what apps do. The web’s better than that. Like stories our parents told about how they could fix their cars when they were younger but now you can’t without training and magic screwdrivers and the secret config software. It’s a switch between being able to see the bits of the jigsaw if you want to, and being able to see the bits of the jigsaw only if you’re allowed to.

In Neal Stephenson’s Anathem, there’s a discussion between Raz, an avout (basically a monk cloistered away in a monastery, but a monk of science rather than religion), Cord (his sister, an experienced engineer but a normal person, not an avout), and Yul (her boyfriend, and something of a handyman but without formal training). Raz tries to explain that a stove which is a sealed unit appliance and which works perfectly would be better than an unreliable stove deliberately kept simple so people can understand it; Cord and Yul try to explain that a stove which they can understand is better, even if unreliable, because a mysterious black box which does what you want today might mysteriously stop doing what you want tomorrow and you’ll have no idea why.

I guess because I live in a place with almost zero praxis [technology], it never occurs to me to think about such things,’ I [Raz] said. ‘But at times like this, the absurdity hits me between the eyes. There’s no reason to put up with junk like this. A stove with dangerous, unreliable chemical fuel. With orifices that clog. In four thousand years we could have made a better stove.’

Would I be able to take that stove apart and fix it?’

You wouldn’t have to, because it would never break.’

But I want to know if I could understand such a stove.’

All right, I take your point. You’re really asking if the average person could understand the workings of such a thing—…’

I don’t know what an average person is. But look at Yul here. He built his stove himself. Didn’t you, Yul? And it worked,’ Cord said.

Took me two years to make it run right,’ Yul admitted.

And none of that would have been possible with some kind of technology that only an avout can understand,’ Cord concluded.

Okay, okay,’ I said, and let it drop there. Letting the argument play out would have been a waste of breath. We, the [avout], had the power to change the physical world through praxis. Up to a point, ordinary people liked the changes we made. But the more clever the praxis became, the less people understood it and the more dependent they became on us—-and they didn’t like that at all.

Extract edited a little for length, but without removing the sense of it

Nobody actually wins this argument. These are two genuinely differing points of view, I think; there’s no obvious knockdown answer, no obviously correct approach to take. To be an avout or to be a Muggle is kinda a choice.

There will be some people reading this saying: this is a very handwavy rarefied argument. Removing ‘View Source’ is another small move in the direction of taking away the web’s democratic nature? It’s one more example of the boot of the Them in crushing out our ability to know what’s going on? Get over yourself, Langridge. Stop making philosophical arguments and let’s be practical and realistic.

This is a fair comment. My response to it would, then, be: what harm is keeping the menu item around actually doing? It’s one menu item. It’s taking up very little space in the UI, it’s not anywhere particularly obvious, and even if you don’t think my arguments above or Jon Snook’s arguments are winning ones, we might be a little bit right, and so why not just keep the menu item? It’s no extra work to code it; the code already exists.

Ah, you may say, but we shouldn’t have menu items that we don’t need. If it can be cut out, cut it out. Don’t have more options, more preferences than you need. And this is also correct; it’s a good principle of UX design. I’ve been quoting Havoc Pennington’s essay on preferences for 16 years now and I’m not likely to stop. It is completely true that extra options and extra preferences have a cost.

It’s not that that’s a bad argument, because it isn’t. It’s that that argument is just as theoretical and rarefied and philosophical as is my argument that taking away another tool of understanding is a bad precedent.

So, is it best to be an avout or a Muggle? Either are, I think, fine. But I don’t like it when the avout try to take away Muggle tools, and I don’t like it when the Muggles try to limit how creative the avout can be. If someone, not a web developer, complained that the devtools were incredibly complicated, I’d mostly be OK with the argument that those tools aren’t for that person to look at, and the complexity is aimed at the actual users of the devtools. It seems right to do them the same courtesy. So perhaps View Source is a Muggle tool and we avout shouldn’t use it, but that doesn’t mean we should take it away.

More in the discussion (powered by webmentions)

  • Rodney responded at twitter.com Well, it is possible to take away some of the UI, or change it a bit, without taking away the feature. But you also make a bit of an extraneous point…
  • Chris Heilmann responded at twitter.com Another view on View Source, after @snookca and @chriscoyier and @codepo8 have already weighed in. I'm for it. kryogenix.org/days/2018/07/2…
  • CobasTest responded at twitter.com Another view on View Source, after @snookca and @chriscoyier and @codepo8 have already weighed in. I'm for it. kryogenix.org/days/2018/07/2…
  • Chris Coyier responded at twitter.com
  • CobasTest responded at twitter.com
  • Snook responded at twitter.com
  • Gamer Geek responded at twitter.com Stuart Langridge: Inside out kryogenix.org/days/2018/07/2…
  • Peter Oliver responded at twitter.com Additionally, one can view source on mobile (by manipulating the URL), where dev tools would be impractical.
  • Stuart Langridge responded at twitter.com Yes. I had that in my notes but forgot to add it to the piece. It's again only a small thing, but occasionally useful.
  • Christof responded at twitter.com
  • Birmingham.IO responded at twitter.com Stuart Langridge: Inside out by @sil buff.ly/2OdpsAn #PlanetBirmingham
  • ((( Brian Teeman ))) responded at twitter.com
  • Jude Gibbons responded at twitter.com Funnily enough, I used 'view source' yesterday - I wanted to do a quick check for instances of a string in a window bigger than the elements tab, and…
  • Bruce Lawson responded at twitter.com Another view on View Source, after @snookca and @chriscoyier and @codepo8 have already weighed in. I'm for it. kryogenix.org/days/2018/07/2…
  • Paulo Elias responded at twitter.com
  • Andreas Marschke responded at twitter.com
  • Brian LePore responded at twitter.com I have a much simpler desire for having it: I'm a php Dev that uses var_dump and exit to test. Without it I need to double click to edit the HTML in d…
  • Erik Vorhes responded at twitter.com
  • Rob Allen responded at twitter.com I use view source a lot, it's often quicker than launching dev tools. Personally I think view source should even be improved, e.g. by displaying HTML…
  • Ruud Steltenpool responded at twitter.com
  • Asbjørn 🐻 Ulsberg responded at twitter.com Another view on View Source, after @snookca and @chriscoyier and @codepo8 have already weighed in. I'm for it. kryogenix.org/days/2018/07/2…
  • Asbjørn 🐻 Ulsberg responded at twitter.com
  • Stephen Michael Kellat responded at Looking At... (identi.ca) Stuart Langridge has a nice post up discussing the design of web browsers. Should you have the option to "View Source" or not? In my job at work, I'm…