Avoid Tabula

Tabula is a new distraction free writing app for macOS and iOS. It has an interesting approach to the issue of formatting.

The claim is that the product has something called Automatic Formatting and that means:

Tabula uses intelligent algorithms and grammars based on natural composition to understand the way you've laid out the page and style it automatically. There's no markup or special syntax unless you prefer it.

It can handle lots of different writing styles, from blog posts to class notes to shopping lists to quarterly reports.

Tabula promises to understand the nature of your document by its content or arrangement of content and formats the document automatically. I have two problems with the approach:

Why does one need this?

Tabula is bad at it.

Why Does One Need This?

The problem lies in the nature of text files. By definition a text file is a slew of characters which are devoid of any style. So, you choose a font and a font size, and that is it. The characters in your text file are displayed in that font and that font size. That is it. A text file doesn't do bold, doesn't do italic, doesn't do any formatting. It is a good system to write code. But even there, modern code editors have introduced syntax highlighting designed to make code more readable. Syntax highlighting doesn't add anything to the text file, it takes elements in the code and colors them differently to make code more readable.

While working in text files, there have been several attempts to provide a framework where the author can define formatting elements. The goal is to control the look of the output. So, you write in text files, define some formatting elements, through some code, and some parser or interpreter takes your document, looks at the code, and outputs a formatted document ready for the printer, or a pdf file, or an html file for posting to the web. There have been several attempts at the definition of the code and the resultant parser: LaTex, reStructured Text, & Markdown are all examples of this attempt.

Markdown is the one which has gotten a lot of attention lately. The move to write for the web and the plethora of available tools has made this an active product category in the writing space. Markdown takes text files and adds code to the text file. For instance, to make something italic in markdown, you surround it with one *. That is interpreted by the markdown parser as italic. If you are outputting an html file, it will use the html code for emphasis and convert the *'s into appropriate html code.

As with anything that is trendy or hot, there are people who are not enamored by the system. They are the people who are "Markdown-averse."

Tabula is trying to cater to this niche of customers.

You write a document and Tabula will fill in the code. The only problem is that no parser can read your mind. So you have to start a word with a ` or enclose a phrase with two `s to indicate to Tabula that you are looking for an italic word or phrase. This is not much different from markdown at all. It is a different markup to achieve the same thing.

Another example, in Markdown you signify a header by appending #'s in front of the header text. Your choice of number of #'s defines the level of the header. In Tabula, you achieve the same effect by having a capitalized word in a separate line or a sentence with at least two capitalized words in a separate line. Tabula doesn't do multiple levels of headers, it does one level.

Tabula Is Bad at It

Software is not good at reading your mind. The more control you want over your output, the more specific you have to be. There is nothing automatic about Tabula. It is marketing hype which Tabula doesn't deliver on. It is another markup language masquerading as automation.

To understand that this is another markup language, this is a quote from their website:

If you would like to license the Tabula parse system for a project of your own, please contact us directly.

Tabula is a markup system which is pretending not to be one. And it is an ill-defined markup system. Markdown is a better alternative. Tabula doesn't do levels of headers, doesn't do footnotes, doesn't do bold, doesn't do nested numbered lists, doesn't support code blocks, doesn't support block quotes.