How we got to WYSIWYG
At the dawn of the computer age, the office was ruled by paperwork. The most common method of document preparation was the typewriter. It was easy to use, but, if you made a mistake, you often had to start over. In the mid 70s, as computers started entering large offices. it was possible to create documents on some of these computers, but the document needed to be described programmatically by interleaving arcane commands with the text to explain to the computer that the font needed to change or that the next line was to be underlined. It required a great deal of specialized knowledge to use and even more to use well. It was little help with the day-to-day paperwork.
Then the WYSIWYG editor was invented. By mimicking the then more familiar interface of the typewriter it allowed a less-technical user to quickly get up to speed and required very little specialized knowledge. Suddenly it was possible to use a computer for paperwork. It was less error-prone and more efficient than the typewriter as individual mistakes could be undone without having to retype an entire page. Most WYSIWYG editors work the same internally as the programmatic typesetters but they hide this from the user. Instead, they present the document to the user graphically, as it would appear when printed, and allow the user to directly edit this presentation. This is the “What You See”-half. The “What You Get”-half works because the editor knows the dimensions of the final output: a piece of paper. They can scale their display so that, when you hit print, a point on the screen corresponds to a point on the actual piece of paper.
A WYSIWYG editor in Word
The personal computer revolution of the 80s brought WYSIWYG editors to smaller offices and even homes.
Then in the 90s something different happened: the world wide web.
At its heart the web is a decentralized but interconnected document store. The languages for describing web documents is much like that used internally by WYSIWYG editors: an intermingling of text and commands to tell the computer how to interpret the text.