Cognitive dimensions are a set of terms that can be used to quickly and roughly evaluate usability of a notation. Below is an attempt of such evaluation for Creole 1.0.

Abstraction gradient

Parts of Creole are very concrete and deal directly with presentation: italic and bold rather than more general emphasis, bullets and numbered lists rather than some general enumerations, headings with set size instead than just hierarchy, forced line breaks, horizontal lines rather than just separators, conflated monospace and verbatim/preformatted text.

On the other hand, some parts are relatively general and structural: there is no markup for detailed typography, font or color selection. Additional whitespace and line breaks are ignored outside preformatted blocks. Indentation of lists is ignored, instead the structure of them is communicated with markup. Escape character works at the level of logical markup, not at character level (with some exceptions).

Closeness of mapping

Some parts of Creole are very closely mapped, to the point of resembling WYSIWYG: single-bullet lists basically look the same as rendered, same with horizontal lines. Gap required between paragraphs resembles the gap that is inserted between paragraphs by web browsers by default. Tables can look as rendered provided that they are not too long and that the author takes extra effort to line them up. Free-standing URLs are basically WYSIWYG.

Markup for bold and italic suggests visually the desired effect.

Markup for nesting of the lists and hierarchy of headers suggests the structure by "indenting" the more nested elements with their markup character.

Numbered lists, table headings, preformatted blocks and text, links, images, linebreaks and especially escape character have to be learned.

The order of label and address in links and images may be different than expected by some users.

Consistency

Inconsistencies:

On the other hand, the link and image markups are consistent, as well as the bullet list and numbered list.

Diffuseness/terseness

Creole 1.0 is relatively terse. The only parts that require elaborate markup are links and images. The markup for inline preformatted text may be uncomfortably long.

Error-proneness

There are conflicts in Creole 1.0 markup, which can lead to user errors. In particular, there is a conflict with markup for italics and typical form of a HTTP URL, and a conflict between bold markup and bullet lists. Both of them may result in unexpected behavior.

Table markup is difficult to read and control, which may lead to errors when modifying tables.

Link or image address and label order may be easily confused.

Italic and bold use the same markup for opening and for closing, which may lead to unexpected and hard to explain behavior when the closing markup is missed or malformed.

It's easy to make a mistake when typing multiple curly braces for inline preformatted text or image, resulting in having the other one inserted (image instead of text or text instead of message) with additional, unbalanced curly brace.

Hard mental operations

Escape character requires careful analysis, and often some trial and error, to guess the result.

Conflict of bullet list markup and bold markup may require careful planning in order to get the desired outcome.

Table markup makes it hard to see which columns align, unless additional work is spent on aligning them. Tables longer than the editor window are especially difficult to read.

Hidden dependencies

Most markup is local, affecting only the line on which it appears. Bold and italic markup can bleed to following lines, but are restricted to a single paragraph, which usually fits on the screen.

Preformatted block is non-local, can span multiple screens and is not easily recognized when the beginning or end is not visible.

Juxtaposability

It may be difficult to see whether bold/italic markup is opening or closing the span. Addresses in links and images can be very long, making them hard to compare. Tables are hard to compare, unless manually aligned. Escape character affects whole markups, but can be easily missed.

Premature commitment

Writing the link/image address before writing the label is forcing doing things in specific order.

Progressive evaluation

Creole 1.0 may be rendered even when the document is truncated or parts of it removed -- and will retain its looks as much as possible.

Problems with the escape character require guessing and trial-and-error, because there is no scale of "correctness", just "good" and "wrong". All other markup always displays something and can be gradually improved.

Role-expressiveness

Characters making up the markup can be easily identified, as they don't appear in those combinations in normal text. The escape character is a notable exception.

Most markup consists of at least two consecutive characters.

Block-level markup takes up whole lines.

Except for bold and italic, all closing and opening markup uses parenthetical notation.

Hierarchy of lists and headings is communicated with their indentation.

Forced line break is not immediately recognized, as the structure of the source text is not similar to the result.

Secondary notation and escape from formalism

Lists can be arbitrarily indented. Additional whitespace and new lines are ignored, except for preformatted blocks, which allows, for example, to align tables.

Viscosity

Tables have very high viscosity: moving a column requires an insane number of operations.

Changing the structure of headings or lists shows some repetition viscosity, similar with changing the kind of emphasis (italic to bold or vice versa).

Making any changes in vicinity of an escape character requires additional changes to correct the markup.

Changing link or image addresses requires repetition if the image or link appears multiple times.

Visibility

All markup, except for top-level lists, tables and escape character, uses at least a pair of characters which are unlikely to appear in normal text.

The marked up text is easy to read, additional markup doesn't obscure the content.

CreoleWiki: Creole 1.0/cognitive dimensions (last edited 2008-12-07 14:38:37 by StephenDay)