typographic interface

functional typography

lets define typography
to distinguish it from ink and aesthetics
(i.e. insubordinate artistic self expression, &c.)
call it functional typography

as such
typography addresses the form of information
(involving text/graphics/numbers/&c.)
so assume: typography = typography + data visualisation
in primary purpose: to reduce the impedance of reading

in any case
the information we want to display
usually involves some amount of text
(if not text only)

The Elements of Typographic Style by Robert Bringhurst
remains a primary reference on typography
(and a beautiful book worth reading for many reasons)

status quo

the CLI may be old but its utility is eternal
(in the natural versatility of simplicity)

the GUI/WIMP is evidently more vulnerable to commerce
favoured for entertainment/lifestyle appliances
(in contrast to general-purpose information technology)
and for captivating/feeding/tapping an audience/market of consumers
(in contrast to supplying simple tools for makers)

exorcising the WIMP

even for those who prefer tools (not appliances)
programmer and user remain estranged
(by monolithic opacity, abstruse development tools, &c.)
but the two can be reunited/integrated
(without ruining each for the other)
it seems mostly a matter of interface
(to expose the system in different ways)

neglected potential

centuries of thought/wisdom/practice inform typography
in a profoundly useful body of technique which simply works
but for neglected potential
especially in this new context of freedom
no longer bound by static print and the physical page

the Grey Beards made some good stuff…
Unix is still useful even though it smells bad
and Plan 9 lost most of the stench
but it also neglects typography

typography seems generally ignored
even by those who ought to know better
but habits can be strong
and typography is subtle/transparent
(as it exists to draw attention not to itself
but to the information/meaning/content it serves)

some dismiss it as a luxury
(too computationally expensive)
but cost varies with implementation
i.e. it can be used to varying degree
and much can be done with very little

so lets heed McIlroy:

«Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.»

«Keep it simple, make it general, and make it intelligible.»

universal interface

an ideal program is controllable/exposed through a text interface
(i.e. any control exposed in a GUI has a text interface analogue)
to which arbitrary interfaces can be assembled/attached
(typo)graphic or otherwise

a universal text interface need not preclude
the transmission of non-text data

monolithic opacity

by contrast
GUI programs generally insulate themselves
in hard-coded arrangements of widgets within windows
some designed more intelligently than others
but it remains difficult/prohibitive to modify the arrangement
even basic stuff (e.g. information displayed, font size, &c.)

their window contents may be «elastic»
growing/shrinking with window dimensions
but it’s more useful to have fine dynamic control
to specify how what is displayed under which conditions

deplorably, some text cannot even be selected/copied

&c. ad nauseam…

typographic interface

an alternative interface can be described in text
which is interpreted/displayed by a typographically informed viewer
somewhat like HTML/CSS/JS
but simple/versatile/small/fast

fear not!
CLI programs need not be corrupted
their output can simply be filtered/interpreted
indeed they provide a basic functional core
with interfaces assembled/attached as need be

text structure language

it’s necessary to expose unambiguous structure in text
but markup languages (e.g. XML) introduce unnecessary complexity
and grossly pollute the data stream

by contrast
Markdown has a comfortable minimal syntax
which inspired me in addressing the need for
a simple/unobtrusive/versatile formal language
to structure plain text for logical manipulation
as described in Connotext

display language

I’m also working on a style/display language
(somewhat like CSS but typographically informed
and simple/versatile/&c.)

in contrast to a multiplexed display
of typographically deprived terminals
(or yet another Desktop-Environment-From-Hell…)
imagine a display without superfluous information
as though it were a well-designed coherent spread/page

an adaptive arrangement of various streams of interest
including relevant input feeds/controls