From:
[email protected]
Date: 2017-12-31
Subject: Plain Text
When I was very young, my family acquired an Apple II that was
used, at first, for managing family finances (this was the VisiCalc
era). Later, a collection of games filled the remaining space in
the plastic box that held all of our 5.25" diskettes. I was fasci-
nated by this machine that seemed to be able to do anything. I
played a lot of games on that machine, but I also learned to pro-
gram in BASIC.
In the 90s, my friends and I were building computers from parts,
setting IRQ pin jumpers on ISA cards. A friend introduced me to a
local BBS. I remember learning my modem's AT command set so I could
dial in, and then the arcane commands used to navigate the Citadel
BBS. Though these commands weren't intuitive, I was impressed by
the efficiency of the text interface.
When I started developing software professionally, I was working on
systems that were accessed through a text terminal or terminal emu-
lator. I appreciated the speed and efficiency of these text-based
interfaces. I also learned to love using the keyboard shortcuts
within Windows and in my editor. Many of the projects I worked on
allowed relatively ancient systems to serve up web pages though a
modern web server. Packaging a handful of string values in an HTML
page added a lot of overhead to each interaction and string con-
catenation was one of the most expensive operations in this partic-
ular system. I secretly felt bad for all the back-office users that
would have to give up their efficient text interface for a much
slower web interface -- all in the name of progress.
Getting Real
Clearly, I'm a nerd with warm and fuzzy feelings about text-only
interfaces, but there are plenty of rational reasons to love plain
text.
It's the universal format.
Just about every system includes a text viewer and/or editor. Yes,
text encoding conflicts happen (you're using UTF-8, right?), but
they won't render a document unreadable. The same can't be said for
some proprietary word processing applications that can't open their
own files from more than a few versions ago.
It's future-proof.
Formats have come and gone, but text endures. Why commercial soft-
ware applications don't embed a plain text copy of your content in-
to the file is left as an exercise for the reader.
It's accessible.
Even the most inexpensive setup with a screen and keyboard can be
used to create/consume text. Plain text is accessible to those us-
ing screen readers or needing large/high-contrast displays.
It's space-efficient.
Like, crazy space-efficient. Compare a plain text file to a Word
document or PDF with the same content. Plain text also compresses
really well.
It's easy to manage.
With a simple format like plain text, you can use tools like git
and diff to track changes to a document over time. That's a lot
harder if a file contains a bunch of proprietary formatting. Com-
pare Word's Track Changes feature to the diff-based feature in
draftin.com.
DIY it yourself.
Proprietary formats are not friendly to budding programmers or any-
one interested in learning how things work. Plain text is easy to
manipulate with basic tools, or with more sophisticated suites like
GNU.
There is a plethora of tools that do everything from editing, to-do
lists, email, typesetting, converting to other formats (see pan-
doc), journaling and logging, creating diagrams, and organizing in-
formation. Doing all of this in a capable shell, like bash, allows
you to string tools together to do creative and useful things.
Looking Ahead
At SDF, I see a lot of folks who are dissatisfied with the current
state of consumer tech. They want to be in control of their tech-
nology and not the other way around. There's a feeling that we need
to turn back the clock in order to move forward. To the extent that
that's true, I think plain text has a significant part to play. I
think it is also true that moving forward means creating new
things. New technologies can be used to remake the web as infra-
structure for the common good. For a time, the old system and the
new system will co-exist. How people choose to use them will deter-
mine the role these technologies play in our society. Plain formats
work well with available tools, resist lock-in, and play well with
a DIY ethic.
Yes, I'm nostalgic for the past, but there are practical applica-
tions of these tools for those interested in a creative approach.
Many software tools start out as text-only and retaining the flexi-
bility of a text interface is important. Makers, hobbyists, and
others who are interested in taking part in creating our digital
future need to understand how these tools work, and need the abili-
ty to use existing tools in new, creative ways. A sealed, propri-
etary system doesn't achieve that.
+++ATH