WYSIWYG considered harmful?
Nov. 5th, 2006 03:23 pmI was talking to my Mom today about various Microsoft products, and had an interesting thought:
Do WYSIWYG interfaces cause more problems than they solve?
The idea behind programs like MS-Word is that they make life easier for the user by hiding the structure of the document, protecting the user from dealing with it and intead allowing him to just interact directly with what gets presented. (This is most obviously applicable to text documents, web pages, and the like; with an image, the structure is the presentation unless you start getting into color separations for printing. But there are also things like GUI builders that are WYSIWYG.)
This is a great idea -- when it works. But my Mom's complaint is that it often doesn't work, that things will look different when they print than they do on the screen. So the first problem is, how reliably is WYSI actually WYG? Because when the correspondence between seeing and getting breaks down, it's more work to fix it with a WYSIWYG interface than a more abstract interface. To work well, WYSIWYG interfaces need to be map structure to presentation in a really robust and consistent way. This problem is even more obvious with webpages, where presentation has to be handed off to one of several browsers that can render the same content very differently.
The flip side of this problem is that when you do need to actually deal with structure directly, it's often really ugly. Since all that the WYSIWYG interface cares about is presentation, there's no particular incentive for it to keep the structure clean. So you'll get things like six nested layers of HTML formating tags applied to nothing. Irrelevant to display, but a pain to wade through looking for a problem, and sometimes things that seem to be invisible can actually affect display in weird and subtle ways.
But I think perhaps the most insidious problem is that it lets users create documents without thinking about the structure in any way. There are times when that's worth doing: some tasks are lightweight one-shots that neither need nor deserve serious attention. But it also encourages users to do things the quick-and-dirty way: using tabs and spaces to center text, or increasing font size instead of applying a "header" format. This is an approach that creates a lot of extra work if the document ever needs to be modified. It also lets users remain at an amateur skill level even though they use the program frequently. Why learn the more complicated way of doing it if the brute-force method is good enough, even though it takes ten times as long?
There's also a lot to be said for treating composition and formatting as separate tasks in the creation process. I've found that working with straight text first forces me to pay more attention to the organization, and formatting it later makes it more consistent in presentation. You can waste a lot of time dithering over what font size to use for subsection headings, only to get halfway through editing and realize that you don't wany any subsections at all. Heck, I even do this with the raw text: first, I figure out what to say, then I figure out how to word it appropriately for my intended audience, and it comes out a lot better than if I just try to produce the final product in a single pass.
So I'm thinking the best match for a WYSIWYG editor, which doesn't require much thought, is a document that doesn't require much thought either. The longer-lived and more complex a document you're trying to produce, the more likely that you'll be happier in the long run using a tool that encourages you to build something with a clean structure that's been thought out.
Whaddaya think?
Do WYSIWYG interfaces cause more problems than they solve?
The idea behind programs like MS-Word is that they make life easier for the user by hiding the structure of the document, protecting the user from dealing with it and intead allowing him to just interact directly with what gets presented. (This is most obviously applicable to text documents, web pages, and the like; with an image, the structure is the presentation unless you start getting into color separations for printing. But there are also things like GUI builders that are WYSIWYG.)
This is a great idea -- when it works. But my Mom's complaint is that it often doesn't work, that things will look different when they print than they do on the screen. So the first problem is, how reliably is WYSI actually WYG? Because when the correspondence between seeing and getting breaks down, it's more work to fix it with a WYSIWYG interface than a more abstract interface. To work well, WYSIWYG interfaces need to be map structure to presentation in a really robust and consistent way. This problem is even more obvious with webpages, where presentation has to be handed off to one of several browsers that can render the same content very differently.
The flip side of this problem is that when you do need to actually deal with structure directly, it's often really ugly. Since all that the WYSIWYG interface cares about is presentation, there's no particular incentive for it to keep the structure clean. So you'll get things like six nested layers of HTML formating tags applied to nothing. Irrelevant to display, but a pain to wade through looking for a problem, and sometimes things that seem to be invisible can actually affect display in weird and subtle ways.
But I think perhaps the most insidious problem is that it lets users create documents without thinking about the structure in any way. There are times when that's worth doing: some tasks are lightweight one-shots that neither need nor deserve serious attention. But it also encourages users to do things the quick-and-dirty way: using tabs and spaces to center text, or increasing font size instead of applying a "header" format. This is an approach that creates a lot of extra work if the document ever needs to be modified. It also lets users remain at an amateur skill level even though they use the program frequently. Why learn the more complicated way of doing it if the brute-force method is good enough, even though it takes ten times as long?
There's also a lot to be said for treating composition and formatting as separate tasks in the creation process. I've found that working with straight text first forces me to pay more attention to the organization, and formatting it later makes it more consistent in presentation. You can waste a lot of time dithering over what font size to use for subsection headings, only to get halfway through editing and realize that you don't wany any subsections at all. Heck, I even do this with the raw text: first, I figure out what to say, then I figure out how to word it appropriately for my intended audience, and it comes out a lot better than if I just try to produce the final product in a single pass.
So I'm thinking the best match for a WYSIWYG editor, which doesn't require much thought, is a document that doesn't require much thought either. The longer-lived and more complex a document you're trying to produce, the more likely that you'll be happier in the long run using a tool that encourages you to build something with a clean structure that's been thought out.
Whaddaya think?
no subject
Date: 2006-11-05 11:01 pm (UTC)I have spent quite a bit of time making the formatting for my CV work well, and it is actually in Word. The primary reason is that the rendering methods to make .pdf, .ps, .txt and .html versions of it seem to actually do a better job than the equivalent outputs I can get with TeX.
But I'd go crazy trying to do science in a WYSIWYG editor.
no subject
Date: 2006-11-05 11:44 pm (UTC)But the accessability factor for infrequent use is very important, you're right. I've never compared different output formats; that's an interesting (and surprising) data point.
no subject
Date: 2006-11-06 01:05 am (UTC)no subject
Date: 2006-11-05 11:32 pm (UTC)Well, that's certainly true, as written.
But the question remains whether, in practice, one is likely to cross that complexity-barrier often enough to make the more structured approach worthwhile, and how one can reasonably predict that.
When I was a full-time technical writer, I far preferred FrameMaker to Word. In fact, I insisted several times on refusing that transition, despite the associated expenses.
FM, if you haven't used it, is very much built on the premises of your post -- it's a book-building tool, rather than a page-building tool, and is very structure-heavy and rewards time spent up front deciding on things. For multi-chapter, cross-reference-heavy, equation-heavy, diagram-heavy sorts of things I've never found anything better.
Now that I'm a software architect, I don't write books, I write documents. Large, complex documents, but documents. I use Word for compatibility, and it's mostly OK. There are things about it that annoy me -- mostly its dumbass approach to crossreferences and embedded graphics -- but it's OK.
I doubt very many people write more complicated Word docs than I do.
The specific problem you cite -- presentation not matching up between screen and print -- there's no excuse for. That's not WYSIWYG vs something else, that's buggy WYSIWYG vs. non-buggy WYSIWYG.
Text-to-HTML, OTOH, is a great example of what you're talking about. HTML is a structured language, and if your source document isn't structured, you're going to get a lot of noise... the best you're going to manage is that your software makes plausible guesses and isn't wrong too often if you're doing normal things.
no subject
Date: 2006-11-05 11:54 pm (UTC)True, but it's a problem that's much less significant for non-WYSIWYG UI. But if the spectrum of WYS and WYG is so broad that it makes the problem sufficiently hard that a company like Microsoft has trouble solving it, maybe it should be regarded less an implementation problem than a feasibility problem?
I was thinking a lot about text-to-HTML, true. Maybe I have the wrong conditions. Maybe it's less about document complexity than it is about the lifecycle of the document: what are the odds that someone will have to do something with the document other than just present it? The more hands and transformation it passes through, the more work will be avoided by good structure...
no subject
Date: 2006-11-06 12:10 am (UTC)You can't be serious, can you?
I mean, I don't want to simply indulge in gratuitous Microsoft-bashing here, but... a company like Microsoft has enormous resources with which to add features and fix peripheral bugs, but is precisely the sort of company that has trouble making fundamental architectural improvements.
The simplest way to solve the display/print problem is by using the same routines to render for both. NextStep did something like this by using display postscript as its screen-display tool, but you don't even have to go that far. The problem of making the pixel display on your screen resemble that on your printer (leaving aside purely optical issues like moire and aliasing effects, about which I agree there's nothing to be done, but neither is there in a structured document) just isn't that hard, unless you're stuck trying to fix it without changing anything else and supporting a zillion different driver configurations, in which case good luck to you.
Text-to-HTML is a completely different issue -- again, because the target structure in this case _is_ a structure, and will be reprocessed by downstream systems that depend on its structure. Which is, as you say, a lifecycle issue in a sense: will you need to do structure-dependent downstream processing of this document?
Indexing and cataloging is another common place where this arises, although writing a document in such a way that the structure is in place to support _those_ operations is a GODFORSAKEN NIGHTMARE and in fact nobody in the real world does this, although many many many clever proposals for doing it exist.
no subject
Date: 2006-11-06 12:45 am (UTC)Would you want to?
In the course I'm teaching right now, the course notes are rendered in 3 different flavours: a set of notes that the students can buy, a set of notes as slides that include lots of extra notes for the instructors, and a set of slides that is shown on the screen when I teach the lectures, which include Scheme syntax highlighting.
It's totally awesome, and is exactly a consequence of the difference between the source (which is actually written in a marked up version of Scheme) and the four presentations, which each result from running (yes) a Scheme program. [No, I did none of this work, as you might guess.]
Similarly, when I typeset math, I get a lot of value from seeing all of the LaTeX commands I'm using; it's a hell of a lot easier to figure out how to fix a formula I've mistyped by seeing it in its unmarked-up version, compiling it, and then seeing the .dvi before I print it.
Really, all I'd prefer to have is some way of knowing what will appear on my printer--I don't need to always see it.
no subject
Date: 2006-11-06 12:56 am (UTC)no subject
Date: 2006-11-06 01:04 am (UTC)In general, the things I do to make computer screens more readable for me are quite different from those that I do to make computer-printed paper more readable for me.
no subject
Date: 2006-11-06 12:08 am (UTC)But for regular old documents, I don’t see how taking away Word’s tips and tricks are going to stop the less savvy from using spaces for tabs, hyphens for dashes, paragraph breaks for page breaks, etc.—and generally making life a living Hell for those of us who have to collaborate with them.
no subject
Date: 2006-11-06 12:11 am (UTC)Try BBEdit if you ever get the chance. It's a nonWYSIWYG text editor but its HTML mode has a bunch of useful little gadgets built into it. It takes a while to get used to them, but I missed it when I stopped using it.
no subject
Date: 2006-11-06 02:01 am (UTC)no subject
Date: 2006-11-06 06:19 am (UTC)Beemer, what about plain HTML? It's sufficiently structured without being a burden, and the images stay where you tell them to. I wrote my whole master's thesis that way, and only at the end threw it into InDesign for pretty.
no subject
Date: 2006-11-06 11:00 pm (UTC)no subject
Date: 2006-11-07 03:55 pm (UTC)no subject
Date: 2006-11-06 03:15 am (UTC)no subject
Date: 2006-11-08 06:56 pm (UTC)no subject
Date: 2006-11-08 07:29 pm (UTC)Really, I'd like a program that combines the things I like from BBEdit, Homesite, and Dreamweaver into a nice seemless single program. If I were a real programmer, I'd make it. But, I'm not.
no subject
Date: 2006-11-06 12:11 am (UTC)A lot of software suffers from the problem that the designers think it "just works" but it's impossible for anybody but the designers to make it work (that reminds me of a meeting I was at where a software developer claimed that something wasn't a bug because there was a workaround...a 15-step workaround. I had to leave that meeting because I was so annoyed).
no subject
Date: 2006-11-06 12:13 am (UTC)no subject
Date: 2006-11-06 03:23 am (UTC)The funny thing is that the modern word processor was developed primarily for writing letters, but now the written letter is going the way of the dinosaur as email and other modes of communication (weblogs!) have taken its place. At the same time, the word processor has grown a bunch of other features and now there are whole industries, like the legal industry, which live in Microsoft Word.
I think this is really an accident of history. My dad uses Word in his law firm, and its revision tracking features are essential for what he does. But really, most of the stuff that's in Word isn't essential to the legal profession and they probably could be a lot more effective with a tool that was written to support the task of writing legal documents.
I don't know what I think normal people should use for short documents. At this point, I pretty much never use word processors, but the tools I use aren't really for novice users. For notes and organizing my writing, I use OmniOutliner. Then, I move the document into LaTeX for typesetting. LaTeX is good because it can produce I recently used InDesign for a project and liked it a lot because of its advanced typographic features, but its learning curve is huge and you start with a completely blank slate, which is less than even LaTeX gives you.
no subject
Date: 2006-11-07 01:35 am (UTC)I think it's a good idea for any long document to type it in a basic editor first. And then when you do put it in another program, don't use Word. It breaks things. Badly.
no subject
Date: 2006-11-06 04:44 am (UTC)heading and emphasis tags properly (instead of a mishmash of italic, bold, font size
changes, and so forth) becomes critical to useful understanding of the document.
Also, web crawlers can much better make sense of a properly tagged document and
bring you interested readers. I'm a typography geek from 'way back, cut my teeth
on troff (still use it heavily), now use LaTex and FOP and ring changes with them
in some truly horrid ways.
no subject
Date: 2006-11-06 05:29 pm (UTC)It's no accident that almost every text processing program has the structure elements of HTML (or vice versa). The things in there are a good minimal set. Tables, lists, dd/dt and common things like bold, italics and colors.
A good editor lets you work with those things without spending a lot of time clicking around trying to use them. Most modern editors do a reasonable job.
Layout, on the other hand, is less about logical ordering of things than making them pretty. Making things pretty is *hard*.
The minute you start making people worry about layout in excess of document structure, the more things start to fall apart.
no subject
Date: 2006-11-08 05:13 pm (UTC)no subject
Date: 2006-11-12 01:41 am (UTC)One is if you see the "commands" that "format" the presentation, the other is how you give commands to format the presentation and possibly a third thing being if the document has any structure in it.
For example, it's possible to have a document where all text is plain text with no structure at all, typed into a text editor and printed. The very same text output needs at least a few things to be seen thru a web browser, or TeX/LaTeX. That could be seen as "structure" that supports the text processing package, not the document. The actual document structure has more to do with what people see, like chapters, headings, headers, footers, footnotes, headlines etc.
Now, it's possible to see the commands that format the text if you say, output the Word file in .RTF (it looks similar to TeX), or if you open the split window in WordPerfect. You could type an entire Word document in RTF in some text editor and then just use Word to preview/print it, just like some people use TeX. There used to be a package that ran in VAXstations called VorTeX which would let you type in one window and see the output in real time (as the package was processing it, which was cool because one could see TeX changing the paragraphs formatting in real time to account for all the penalties for hyphenating, for example). The "what you see is what you get" has more to do with if you can see the document as it will appear than anything else -- VorTeX is WYSIWYG, and so is emacs, edt and vi, not that anyone would describe them like that or care nowadays.
People tend to describe packages as WYSIWYG when they can manipulate things "directly" by using the mouse to drag stuff around, or select things to format, and choose stuff from the menus. In WordPerfect for example, you can't "type" a command, you can only enter the formatting commands from the function keys and the menus, you don't say "/break/" or "/bold/" and when you see the commands interspersed with your text it's not necessarily what you type but a representation of what you type, unlike say, TeX or HTML. There used to be word-processing packages that forced people to enter documents in the style of WordPerfect and forced them to actually see the formatting commands interspersed with the text, which were not WYSIWYG at all, but were "user friendly" because you didn't have to remember commands or type long strings of commands.
Now, one of the reasons people like us, who started with non-WYSIWYG apps, tease other people with "what you see is all you get" is because very often WYSIWYG packages tend to be limited in what they can do (which shouldn't be a problem, HTML is terribly bad and limited when compared to, say, FrameMaker or TeX, but they are intended to cover vastly different markets) and also because it's easy to "see" what the command will do when you say "position this picture one inch from the top left corner of the paper", so the intention is clear, as opposed to when you only look at the "preview" and it looks like the picture is positioned the way you want, but there is little or no indication (depending on app) to if it's there because you asked it to or if it's accidental, say if I type another paragraph before the picture, will the picture be pushed down the page or will the text flow around the picture? Some apps are better than others at controlling things like that or telling you which one is which so you don't need to re-check the entire document every time a "small" change happens (say you change the font or the font size).
(Continued...)
no subject
Date: 2006-11-12 01:42 am (UTC)Now, not all WYSIWYG apps are terrible when it comes to structured documents. Word, for example, if you stop and think about the structure and then start formatting and then you type, it can be very helpful. For example, you can define styles in the gallery for headings that make most of the document auto format: say each chapter starts with Heading 1 which you say is followed by Heading 2 which is followed by Body Text. You can then start a chapter by just entering the command to format Heading 1, type say "Chapter 10" and return, type say "Introduction" and a return and the next text you type will be body text. Makes it hard to screw up when you prepare the template and have people type in the text. But people usually do it completely backwards, they either want to format as they go, which sucks because they won't stay consistent (making it hard to change later) or they will type everything and then come back to format which is hard because now you do the work instead of the computer. The cool thing about most non-WYSIWYG systems is that they force you to stay structured and it's relatively easy, if you decide that you hate underlining to tell the text editor to replace all underline commands with bold, say. On the other hand, the best way to use either kind of system is not to say "bold" this, but to say "emphasize" this, so if you decide later that "emphasize" means bold and not underline you don't also mess up all the things that happen to be bold too if you are told "no, I liked underline better, put it back the way it was". ;-) (Can you tell I've helped way too many people deal with word/text processing their thesis? I may have seen everything when it comes to advisor/students clashes when it comes to formatting their thesis -- my advice, always, always, save all versions until you are done... it's way too easy for advisors to tell you to move a chapter to the other place and 3 versions later tell you to put it back where it was.)
My peeve with HTML is that the people who started HTML explicitly wanted to make people only have structure, never formatting, to their documents. One was not supposed to be able to choose the font, color, size or style of text, for example -- the entire idea was that you were supposed to mark up the text and let the end user tell their browser what each of those meant, so they could choose what displayed better in their equipment. Fast forward to when business discovered the web and wanted their precious appearance and "delightful" designs preserved on the other end, and we get the mess we have now, where it more often than not shows what the designer wanted, not what the user wanted.
For printing, I will wholeheartedly agree with
(...Continued...)
no subject
Date: 2006-11-12 01:43 am (UTC)Speaking of Microsoft and Word, it's a very sad story really. Microsoft tends to be the folks that tripped over the transporter/replicator technology and don't know how it works, so when they try to add/change anything they screw up. The Word kernel came straight from a Xerox lab, it used to be fast, small and neat. Word was one of the first apps that understood that the thing displayed should be exactly (or as close as possible given the display you had) the same as the printed one. And also that things had structure. At the time, all the other word processors would force you to say things like "start the paragraph one inch from the left and wrap at seven inches on the right" -- which was great until someone came and said "oh, btw, we're not using letter paper, we're using this other size instead" and every single paragraph/ruler had to be changed. In Word you said things like "paragraphs run one inch from the paper margins" and the text/rulers would change automatically when you changed the paper size. There were style galleries. Things were good. Then that team left MS or at least they were not in the Word team anymore. Since then we have had this bug in every single version where if you use fast-save, sooner or later your document will get corrupted -- most people just install a new version of word and immediately uncheck the "use fast save" option and check "force a backup with each save" for good measure. One day maybe MS will re-write Word from scratch and hopefully do a good job with it making it small, fast and neat again. People tend to think that MS was big and brute forced Word on everyone. It's more like Word was a first class word processor once and propelled (along with Excel, which started on the Mac and was once the best spreadsheet software available) people to adopt other MS software. Oh, well.
Cheers,
-- Paulo.