Afterword
The 1446 book closed with a postface, and it made two claims for its little alphabet. The first was that a wise man could learn it before the morning was over, and a slow one within ten days. The second was that it could write down any sound at all: the wind, the cry of a crane, the crowing of a cock, the barking of a dog. This book closes by restating both, because they are its own measures of success.
The ten-day challenge
The first claim was about speed, and the preface restated it for this book: read the whole grammar in a morning, and write it fluently within ten days. You have done the reading. Here is the rest of the promise. For the next ten days, ask one question a day of your own data, not of the book’s cast of tables, and answer it in one sentence. Start where the cookbook starts: with your columns and your question. By day three the recipes will read as ordinary sentences, because you will have written sentences like them yourself. By day ten you should be writing sentences this book never showed you. That is the one outcome that proves you learned the grammar and not the examples.
During those ten days, report two kinds of result: a sentence that renders when you expected a refusal, and a refusal whose direction you disagree with. Reports like these are how the grammar’s mistakes are found.
Growth without new words
The second claim was about what the letters could write: any sound at all. gog has the same goal for plots, but it does not promise that every plot is possible. The kernel you learned is its whole vocabulary. The engine draws every word in it, though not every pairing of words. Combinations shows which pairs it draws and which it refuses.
A new kind of plot does not need a new word. The choropleth is an example of that. It is a map that shades each country by a value, and no atom was added for it. What it needed was a different kind of table: one row for every point along a country’s border, so that many rows make up one country. A zone is a filled region, and several things can decide its sides. One of them is a boundary, the outline those rows trace, and group already says which rows belong to one country. Map shows the choropleth drawn with the words the kernel already had.
The vocabulary is also the same in all four languages. Whatever sentence you write, all four bindings build the same specification from its words. The main difference is how each binding names a column. JavaScript also cannot give the operators new meanings, so it spells them as words. Each language has a chapter of its own, listing what differs: R, Python, Julia, JavaScript. Here is one sentence from A first plot in all four:
# R
data(gapminder_2007) + point + x(gdp) + y(life) + color(continent)# Python
(data(gapminder_2007) + point + x(col.gdp) + y(col.life)
+ color(col.continent))# Julia
data(gapminder_2007) + point + x(:gdp) + y(:life) + color(:continent)// JavaScript
plot(data(gapminder_2007), point, x(col.gdp), y(col.life), color(col.continent))All four draw the same plot, byte for byte.
One goal left
Those four spellings are finished work. One thing this project planned to do is not finished, and it is written down here so you can check later whether the project did it. Half of it already works: the engine itself runs inside the page, which is how a 3-D plot turns when you drag it in the web edition. The other half is making every example in this book editable on the page. You could then change color(continent) to shape(continent) and watch the plot redraw. This book is ready for editable examples, because no plot in it is a screenshot: the engine draws every one from its specification.
Writing quickly is not writing well
Both claims of 1446 are about the letters: how fast they can be learned, and what they can write. Neither says how well anyone will write with them.
I think Hangeul (한글) is the best writing system in the world. I should admit that I may be biased, because it is the alphabet I write with. Most people agree that it is quick to learn, to read and to write.
Writing quickly is not the same as writing well. Good writing cannot be learned quickly: you read good writing, and you practice. Visualization is no different. This tool is new and still has problems, but I hope it is already a good tool to practice with.
The 1446 story makes the same distinction, between making a writing system and writing with it. King Sejong made the alphabet. Other people wrote most of the books that used it. I designed gog, but I am not a great author of plots. What I do have is twenty years as a user of visualization tools, watching and listening and reading. The design comes from that experience, and the result is a tool that is easy to learn and easy to use.
I hope you do good work with it.
The gap
A specification is a sentence written before the picture exists. Between writing it and the moment the engine shows you what you said, there is a gap, and everyone who writes a specification waits in it. The package is gog. The state you are in while you wait is agog: eager to see what comes next. I hope the book kept you agog.
Be agog. Use gog.