Today we're revisiting two concepts I've already covered separately: metaphor and web design. I will combine them together to form something new and exciting much like the alchemists of old combined various elements to form gold. They were so rich! Also, I need to post before I leave for Waterloo next week on vacation and, perhaps more importantly, before physicists destroy the entire universe. Also, since it's Programmer Day, what better time to write a post about bad software engineering? (There is no better, until someone comes up with a "bad software day".)

Imagine with me for a moment that you are using your favourite office suite's feature-heavy word processor (that's Microsoft Word for everyone who is already lost). Now, in our hypothetical universe the people who wrote your word processor were busy popping various and powerful drugs instead of testing their software for usability. When you open your word processor, its primary text-editing space is exactly 1280 pixels wide, even though your monitor's resolution is only 1024 pixels wide. To make matters worse, you can't change the font size when you write new documents — everything is always 10 points high and therefore difficult to read.

What do you think of your precious word processor now? Like any normal blog reader, you'd think that your software is broken and you'd be all set to start posting your whiny reviews of this terrible software on our hypothetical universe's counterpart to Youtube.

Software user interfaces don't really have a metaphor, so when we, as humanity, first came up with the idea we made things highly flexible to accommodate different user preferences and window sizes. Not every user has the same kind of monitor, perfect eyesight and lack of colourblindedness. We figured this out pretty early (considering we've only had graphical user interfaces for a few decades now). It would be arrogant of us to think that one rigid layout is good enough for everybody.

So why do we tolerate the exact same issues when we view websites? Why are so many web designers arrogant to this degree? I think it's because we have a metaphor for widely distributed content.

Magazines and newspapers distribute information to the world and have been doing so since long before we ever had graphical user interfaces. Editors spend hours and hours meticulously positioning and repositioning every tiny detail on the page to make the content not seem too long, to catch the readers' eyes, to prioritize the news while still avoiding too many jumplines, et cetera. The paper on which the layouts are printed has a fixed size which means that space is a highly valuable and limited resource.

It's this last point that caused the greatest damage to web design which uses a printed metaphor as its base. Since websites are often printed and since programmers are incredibly lazy by nature (and therefore too lazy to make a printable version of their layouts available), they try to make pixel-perfect layouts which, among other things, fix the page width and font sizes.

Web pages have unlimited width and unlimited height. They do not need to be cut short to fit on a page. Web pages are software. We seem to have forgotten that; or maybe we just never learned it. Just as no one would ever use a word processor that doesn't conform to its window's size, no one should have to use a website that does the same.

Overapplying the printed-publication metaphor might make your site look the same on every browser, for every user, but at what cost? Browsers are designed to automatically make a site dynamic unless its designer explicitly declares it to be fixed. It actually takes more work to make a site that is pixel-perfect on all browsers than it does to make a dynamic site that has different widths and heights for different users but has the same overall style. Users don't care that button A is always exactly two pixels to the right of button B. That level of precision doesn't matter and is wasted effort.

Moreover, newspapers and magazines have added bonuses that make their fixed natures much more tolerable. If a newspaper is huge, you can fold it up to focus into the article you want. If the text is too small, you can use a magnifying glass to get a better look. Websites have these features, too, but only when you do not apply the metaphor. Fancy that! When your layout is more dynamic, the browser's features are able to kick in, magnifying content or changing the website's width (like folding a newspaper).

So the next time you see a site that is as rigid as a newspaper or (for some reason only the drug-popping web designers understand) has a built-in concept of pages (wherein you're forced to "click here for more" to see a whole article), think about how useless Word would be if it did the same.