🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: net.text
Article #694

WYSIWYG

#694
From: Dick Dunn
Date: Wed, 04 Dec 1985 01:47
166 lines
10587 bytes
Since I work for a company that has a major commitment to wysiwyg editing
of documents (and since I've got some serious reservations about wysiwyg
myself), I figure I should throw in my $.02.  The flap seems to have
started with a posting from Raymond Dunn (no relation):
> WYSIWYG systems (with the associated demise of much of the graphic
> arts industry) are becoming increasingly practical and popular, from
> Interleave to the good old "Mac".  The drop in price of both quality
> laser printers, RAM, and the obvious need to manipulate text and
> graphics together (both pictures and line drawings), can only speed
> up this trend.

There are parts of the graphic arts industry that are going to die verrry
slowly, but the general trend is clear for a large part of the industry.

I think there's some misunderstanding of just what wysiwyg implies,
however.  From Ben Cranston:
> However, there are times when the WYSIWYG paradigm breaks down badly.  As
> a somewhat strained analogy, a strict WYSIWYG system might have you use a
> mouse to pick out letters from a menu, rather than using a conventional
> keyboard.  This would be easier for the "novice user" than learning to type,
> but would ultimitely limit data-entry rates to values far below those
> attainable by a practiced keyboard operator...

Wysiwyg is NOT a matter of how the information is entered or modified.
What it sez is simply "what you see is what you get"--meaning that the
presentation of the document on the screen, as you create and edit it,
reflects as closely as possible the way the document will appear when
finally printed.

Our newer system uses a combination of the following for input:
	- normal hard keys--the qwerty section of the keyboard
	- various special hard keys--with labels like "fonts", "undo",
	  "find", "window", etc.
	- various soft keys--keys whose functions change, with info at
	  the bottom of the screen to describe the currently active
	  functions
	- a mouse
All of this is really unrelated to the wysiwyg-ness of the system.  What we
mean by saying that it's wysiwyg is that, for example, if you remove a word
the remainder of what you see (in fact, in effect, the remainder of the
document!) is reformatted, lines re-broken, etc., as needed so that the
screen will again show you what you're going to see when the document is
printed.  If you remove a level of indentation, things move out on the
screen.  This takes a LOT of computation.  If you want to think of some
really nasty cases, consider the interactions in balanced columns of text
with footnotes where the footnote text has to overflow a column.  I sat in
on some of the early discussions of those matters around here, but I didn't
have to figure out the actual details and I didn't have to implement it
(and I'm just as glad!)

One of the major areas in designing a wysiwyg system is what information is
actually kept beneath the presentation to the user.  For example, suppose
that your user wants to have paragraphs indicated by one extra line space
and a 2-em indent.  There's nothing that says that you can't just take the
paragraph soft key (or whatever) and use it to generate the space and the
indent, storing these in the file.  However, that's a decidedly poor
choice, because if your user decides that he doesn't want the 2-em indent
anymore, you don't know how to find the places where paragraph boundaries
were.  You can go through and find all the blank lines followed by indents
and remove the indents, but you may get some places where this combination
occurred even though it does not represent the start of a paragraph.
Instead, what you should have done is to store where the paragraphs begin
and separately store the fact that paragraphs are to be handled by an extra
line space and a 2-em indent.  Then you can make a change to paragraph
begin without turning it into a minor AI task.  (It's still a lot of work,
since you may have to go through the entire document.)

My major discomforts with wysiwyg are where there's not enough information
kept.  What should be stored is the INTENT of the user--things like new
paragraph, outline number, etc., and not the RESULT of interpreting the
user's intent to put things on the page.  Think of the stored form of a
document as a program--you want the user to be able to edit in terms of
the source code, not the object code!

Now what I'm leading up to is that in some very important sense the stored
form of a document used on a wysiwyg system differs little in concept from
the stored form of a document used on, say, a "dot command" system.  Each
needs to store the text of the document plus the various items of layout
information that the user has specified.  The big difference for wysiwyg is
how the information is presented to the user.

So how do you get to these layout commands on a wysiwyg system?  What we do
is have several ways of presenting the information.  In "proof" mode, you
see things EXACTLY as they will appear.  You see the white space for the
margins.  If there is only an inch of text on an 11" page, as you scroll
downward you will by golly see one inch worth of text and ten inches of
blank screen.  In "partial" mode, some things become visible; in "full"
(command) mode you see little notations in reverse video for all of the
commands that make things work (like font changes, paragraphs, etc.)  This
of course displaces the text so that it's no longer where it will finally
appear.  Most of the time you would probably work in "proof" or "partial"
mode (matter of taste), using full mode only when you're going in to tweak
things that you can't get ahold of in the other modes.

There are some matters of document representation that have to be different
on a wysiwyg system in order to make it perform at reasonable speed on
documents of substantial size (meaning, anything over a dozen pages or so).
If you're going to work on a 100-page document, and you're adding text to
the end, you CAN'T wait for the editor to work through 100 pages of text to
figure out what the beginning of page 101 should look like before you start
editing.  This leads to a need for keeping additional information about
where the page breaks are and such, using it as an index to the main body
of the document so that you can move around quickly.  It is here that a
wysiwyg system's document storage must be different--but note that it's
storing MORE information than an "embedded command" (bad term) system.

Moving on to another comment from Raymond Dunn:
> Tex, and the current UNIX tools for typeset text preparation, are
> rapidly becoming dinosaurs - they probably have already become so.
> Visible typography commands embedded in text, and separate H & J/page
> makeup runs are passe

I don't see this happening yet.  Some folks are quite happy to deal with
the TeX/troff model in order to reduce the amount of computation that it
takes to prepare things.  At the most, you're going to see things merging,
with perhaps wysiwyg front ends for modified TeX-like tools.  It's
especially true that if you're entering large amounts of text, it seems
hard to justify an expensive workstation with a fast processor, a couple of
meg of memory, a hi-res bitmapped display, a hard disk, etc., for what is
really a data-entry task.  You probably want to enter the data on a cheap
terminal and do the first run of overall proofreading.  Then you move it
to your high-end workstation and add the graphics and tables, fix up the
layout, etc.  (You don't go back to the cheap terminal once you've moved it
though.  Once you have integrated the pieces you don't want to break them
up again.)

One of the reasons that an H&J pass is a problem is that you can't
generally find all of the problems (bad breaks, rivers, etc.) without
looking at the final page.  If you have to wait for the entire document to
be formatted and a proof copy printed, the sort of fine-tuning necessary
for really high-quality output can be very tedious.  Once you find and fix,
say, a bad line break, you have to re-run a proof copy and check everything
after that until a boundary that puts you back to the old document (meaning
at least the end of a page and perhaps the end of a chapter).  It's like
fixing compilation errors in a program when the compiler only shows you a
few at a time.

Brian Reid, responding to Raymond Dunn above:
> BALONEY. There is a place in the world for WYSIWYG systems that do not use
> embedded commands, but there is a large class of documents that 
> cannot be done at all well with the kind of interactive system that you are
> talking about. Anything where the structure is as important as the content.
> Cookbooks like the @i[Joy of Cooking]. Encyclopedias. Airline schedules.
> Dictionaries. Reference manuals for computer software.

(As an aside, note from my comments above that underneath the presentation
gloss, a wysiwyg system DOES use embedded commands.)

These do represent some of the nastier problems we've faced here.  Indexing
and cross-referencing are ?exciting?nasty? problems when you try to handle
them wysiwyg.  It's easy to come up with algorithms for inter-text
references, for example, which oscillate when a page crossing happens at
some inopportune point near a reference.

> Interactive systems are just fine for small documents, and for documents
> whose appearance is extremely important with respect to their content. They
> are not OK for large documents.

I'm only willing to concede this point partially.  I don't believe that
large documents are inherently unworkable for a wysiwyg system, but it
takes a LOT of work (and occasional blue smoke and mirrors) to get even
passable performance.  (I should probably be careful about terms here--by
"large" I mean documents in the range of 100-1000 pages.)
-- 
Dick Dunn	{hao,ucbvax,allegra}!nbires!rcd		(303)444-5710 x3086
   ...Reality?  Gad, that's worse than puberty!
Technical Details
Message-ID: <280@opus.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!cbosgd!ihnp4!houxm!hjuxa!petsd!peora!codas!akguc!akgua!gatech!seismo!hao!nbires!opus!rcd

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/17/84; site opus.UUCP
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!cbosgd!ihnp4!houxm!hjuxa!petsd!peora!codas!akguc!akgua!gatech!seismo!hao!nbires!opus!rcd
From: rcd@opus.UUCP (Dick Dunn)
Newsgroups: net.text
Subject: WYSIWYG
Message-ID: <280@opus.UUCP>
Date: Tue, 3-Dec-85 20:47:20 EST
Article-I.D.: opus.280
Posted: Tue Dec  3 20:47:20 1985
Date-Received: Fri, 6-Dec-85 07:17:26 EST
Organization: NBI,Inc, Boulder CO
Lines: 166