From: dbucklin@sdf.org 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