Reversing WYSIWYG

The other day I found myself saying that I preferred org-mode files to Jupyter notebooks because with org-mode, what you see is what you get. Then I realized I was using “what you see is what you get” (WYSISYG) in exactly the opposite of the usual sense. Jupyter notebooks are WYSIWYG in the same sense that a Word document is. You work with a nicely formatted file and the changes you make are immediately reflected visually.

The source file for a Jupyter notebook is a JSON document containing formatting instructions, encoded images, and the notebook content. Looking at a notebook file in a text editor is analogous to unzipping a Word document and looking at the XML inside. Here’s a sample:

    "    if (with_grid_):\n",
    "        plt.grid (which=\"both\",ls=\"-\",color=\"0.65\")\n",
    "    "
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   "outputs": [
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAawAAAESCAYAAA...

It’s hard to diff two Jupyter notebooks because content changes don’t map simply to changes in the underlying file.

We can look a little closer at WYSIWYG and ask what you see where and what you get where. Word documents and Jupyter notebooks are visually WYSIWYG: what you see in the interactive environment (browser) is what you get visually in the final product. Which is very convenient, except for version control and comparing changes.

Org-mode files are functionally WYSIWYG: what you see in the interactive environment (editor) is what you get functionally in the final code.

You could say that HTML and LaTeX are functionally or causally WYSIWYG whereas Word is visually WYSIWYG. Word is visually WYSIWYG in the sense that what you see on your monitor is essentially what you’ll see coming out of a printer. But Word doesn’t always let you see what’s causing your document to look as it does. Why can’t I delete this? Why does it insist on putting that here? HTML and LaTeX work at a lower level, for better and for worse. You may not be able to anticipate how things will look while editing the source, e.g. where a line will break, but cause and effect are transparent.

Everybody wants WYSIWYG, but they have different priorities regarding what they want to see and are concerned about different aspects of what they get.

6 thoughts on “Reversing WYSIWYG

  1. Functionally/causally WYSIWYG. I like it. I’ve been hampered lately by feeling strongly about this but not having a name for it. My particular interest lately is wiki markup: it always seemed obvious to me that in the long run a simple text-based format easily learned and read by human beings is the only way to go, and that that’s why wikis have been successful (as well as why TeX/LaTeX are still around and why programs are still written in text); but it turns out that wasn’t obvious to the Wikimedia Foundation, and they’re sinking huge effort into trying to move away from wiki markup to a “WYSIWYG” interface (whose purpose is to systematically deprive users of access to the underlying data format; I would describe that as systematically destroying their own key technical asset).

    Functionally/causally WYSIWYG. I like it.

  2. Back in the 1990s, I preferred working with Lotus WordPro. It was WYSIWYG long before Word was, and changes were usually simple and transparent enough that I understood what the program was doing. As you said, with Microsoft Word I am often at a loss trying to figure out why this edit is resulting in this unwanted change or that edit is causing something else to do what I don’t want it to do. It’s a perpetual frustration which often defeats the purpose of WYSIWYG.

  3. “Is functionally/causally WYSIWYG the same as WYSIWYM?”

    Practical definition of lucidity/readability: it’s lucid/readable if straightforward inspection of what you see results in correct understanding of what it means.

  4. William Tanksley Jr

    Sameer’s got it — the classical word for this property is WYSIWYM, “what you see is what you mean.” LyX has always marketed itself that way.

Leave a Reply

Your email address will not be published. Required fields are marked *