On respecting your visitors' computing resources

In what's sure to be an unpopular opinion, I lay out a few reasons why it's imperative that you make web pages and programs run as efficiently as possible.

I create content for this site on a fairly powerful computer1. Powerful computers are great2, they're fun to play with3, and they're even occasionally useful. And this computer that I'm using right now to create this site? It's using my resources. Resources that I can use in the most inefficient way possible if I want to, because they're my resources to exploit however I want to.

But, you, dear visitor. You're visiting this site using your resources. Sure, you're asking me to give you a copy of my web page, which will take up some of my resources, but, ultimately, you're asking me to to use your resources to display the content that you're interested in. And it's just good manners for me to use your resources in the most efficient way that I can.

Let's say, for the sake of argument, that I make really good cookies4, and I have some kind of service where I will come to your house and make some for you5. The caveat is, of course, that I have to use your oven, your mixing bowls, your cookie sheets, your ingredients, and so on. In other words, I'm using your resources to make delicious cookies.

You contact me, tell me you want a dozen cookies, and I come over to make them. When I get there, I make the batter, I pre-heat the oven, I put one (1) cookie on the cookie sheet, I bake it until it's done, I remove the cookie, I turn the oven off, I let it cool down, I turn it back on to pre-heat again, I put one (1) cookie in the oven, I bake it until it's done, I remove the cookie, I turn the oven off, I let it cool down, and so on, until all dozen cookies are baked.

By this time, you'd probably be screaming at me because I'm wasting your time, I'm wasting your electricity, I'm making your air conditioner work overtime to counteract the oven going on and off, and so on. I'd counter that this is just the way that I do it. It works great for me at my house (I have two dozen ovens that I can use at once), and we do them one at a time because some people want a dozen cookies, but some people want one, and other people might want seventeen. By doing one at a time, I'm able to customize the delivery to the precise specifications that the customer wants. Besides, did I mention that it works great for me?

A reasonable person would counter that cramming as many cookies as possible on however many cookie sheets you own, baking them until they're done, and then keeping the oven on while you unload and reload your cookie sheets is a more efficient way to do things, and you would be right. But it's somehow tolerated when websites do the same things.

A few examples:

  • A 10 megabyte 4000x1000 pixel image squashed into a 1000x400 pixel display area instead of being appropriately resized doesn't respect my bandwidth resources
  • Websites that make me solve complex or slow CAPTHCHA challenges repeatedly don't respect my time resources
  • Websites that cause my CPU fan to spin up and my laptop to get hot just to render some text on a page don't respect my processing resources
  • Websites that algorithmically hide content such that I have to scroll for long periods of time or click through a bunch of 'read more' links don't respect my time resources
  • Websites that don't let me zoom the text in or out (this is mostly a problem when browsing on a smartphone or tablet) doesn't respect my visual acuity resources
  • Websites that inject a bunch of tracking and advertising scripts into their pages don't respect my processing resources, my bandwidth resources, or my privacy resources
  • The list goes on...

I like to think of it like this: when you ask me for my website, my website then becomes a guest on your computer. It's my duty as a guest to behave myself, otherwise I might not be allowed back, and it's my right as a host to disallow any behaviors that I deem an iappropriate use of my resources. Just like I wouldn't tolerate someone coming into my house, eating all my food, taking an inventory of my mail contacts, and rifling through the box of receipts that I've been keeping for tax season, I also won't tolerate websites that waste my time, waste my resources, or to track me around the internet to see what I'm doing or what I'm buying to show me 'personalized' ads.

In fact, I'll take every technical measure I can to make sure that the websites I visit are well-behaved guests on my computer, and I won't feel bad about doing it. Just like I won't feel bad telling my houseguests that they can only have one of my delicious cookies instead of draining the whole jar.

And, just like an unruly houseguest that won't behave until you lay down some ground rules, websites will keep acting as poor guests and suck up as much resources as they can until we, collectively, tell them to cut it out.

Footnotes

  1. Most of the time. Sometimes I use an ancient computer, too
  2. For varying definitions of 'great'
  3. If you're into that kind of thing
  4. Hey, it might be true!


Read more articles ยท Go back to the homepage