Derek Sivers: Write Plain Text Files

I’m aware that some folks here have written about living in plain text before, but it’s been a couple years and Derek Sivers wrote about it yesterday.

I do not live in plain text, but I love the idea of it. Just thought this was worth sharing and wanted to encourage those who live in plain text to share some of their workflows and strategies. I’d love to learn!

5 Likes

Read the article, but disagree. Everyone loves to live in plain text until they use it. Those who succeed are usually coders who can create scripts to do stuff that you just can’t do in plain text. The argument often goes that MS Word won’t be around is 50 years or 100 years time so use plain text. Well actually I’ve been using MS word for 30 years and it’s still here. All my word documents open fine and format correctly. The format is XML now I believe so will be accessible should MS Word ever disappear. In terms of use Word is excellent. If you learn how styles work and set them up, creating a formatted document is a breeze and Ive created some 300+ formatted pages.

Plain text has to go through all kind of shenanigans to output something decent. Pandoc, Marked 2 and then you can’t do strike through or highlight or easily create complex tables. Ironically, producing a fully formatted document from markdown or plain text takes way longer than in MS Word imho.

8 Likes

While it’s true that MS Word has been around for a long time, both the app and the underlying file format have undergone many changes over that time. If you’re creating and managing your own documents in Word, then all well and good, although I wouldn’t bet money on it (or Microsoft) still existing in 30 years from now. The troubles with Word documents stem from collaborative work between people with differing versions of Word, as well as occasional bugs and glitches in the app. (As someone learning copyediting, I’m having to use Word again after several years, and am getting reacquainted with its quirks.)

Plain text may not be able to do everything, but it has the distinction that it can be displayed by any application on any device. For some folks, myself included, that is the biggest advantage. I will still use Word (or Pages) for things like letters or invoices (with a copy saved as PDF), but for journalling and my own writing I find plain text works very well for me. YMMV, of course.

5 Likes

I’m not a coder. For me ideas and notes are the most important. The formatting is not needed when I’m spilling ideas out of my head to organize in the next step. And people can build things off of plain text (eg, Obsidian) that they can’t as easily do in proprietary formats. Plain text links to things easier too.

4 Likes

+1

Maybe MS Word has gotten better in the years since I had to use it. But your post, @AlanRalph, brought back long memories of frustration with it from the past.

1 Like

I don’t have to interchange documents with many people and when I do it’s usually in basic formatting. No issues converting to/from Numbers. When I want to save something long term I save it’s a PDF or better yet, PDF/A. I have decades old PDF files install read with no problem. When I dumped MS365 I converted all my documents and spreadsheets to Pages and Numbers.

Some day a blogger will write “use whatever software you feel like using, and store your stuff in whatever kind of document makes sense for the context”.

Otherwise these silly debates about plain text vs x vs y vs z are pointless wastes of energy.

11 Likes

As far as I’m aware plaintext can’t do anything apart from store text as plain text. Anything else requires something else.

That’s true, but means you can still open the documents in word from decades ago.

This is true of all apps, especially collaborative apps. I have no more glitches from Word than any other non-native app.

Which was said 20 years ago and everyone was told to use RTF. Even if Word isn’t around the xml format still allows you to access the text. Although, I think MS Word will still be about in 30 years.

This is true of all files - docx files can’t do anything but store a Word document.

Hate to break it to you, but xml is plain text.

The best strategy is use the right tool for the job, as @anon41602260 said.

3 Likes

Or, a wonderful distraction from the overwhelming and very real pains of our current world.

5 Likes

Sorry, should have been clearer. Plain text can’t be formatted. Word text can and can produce rich text documents. There’s a whole world of difference there. Word can produce the end product, plain text rarely does.

Exactly my point. Why use markdown in plain text editors when I have all the formatting options available in Word, and it’s stored as plain text?

1 Like

Plain text can’t be formatted.

Oh my, do I have some important news for you! :wink:

On a serious note, I admire your courage, pimping MS Word hard in a Mac lovers haven…

If your end product is a Word doc, sure, makes sense, but I don’t think that’s where most of us live these days. And when a “doc” format is needed, Obsidian for example, gives one snappy “in-app” formatting and pdf output, sans shenanigans.

Anywayz, this reminded me of something I haven’t thought about in a long time.

I’ll see myself out.

3 Likes

Agreed with @svsmailus’s point. To me, plain text is better because of its portability, simplicity, etc, but I also recognize these are tradeoffs vs Word’s strengths (out-of-the-box ease of use, collaboration, etc). I am willing to write scripts because often the text manipulation I need is easier for me to conceptualize that way but that does not necessarily mean it is The Way™. Apps like Scrivener also have a bunch of functionality that far surpasses plain text. Eventually I want to find or build an app that uses Markdown/JSON combined with an intuitive interface… but that’s more of a dream to be honest.

I’ve completely lost the thread of what we’re debating.
You all have fun :slightly_smiling_face:

8 Likes

Not being a coder/developer I’m probably not fully understanding your comment but for what it is worth, Craft uses JSON and uses markdown. It has a beautiful GUI as well.

1 Like

For me, honestly, it’s because Markdown is faster. It takes me significantly less time to write Markdown than it takes me to do the same formatting in Word.

Just noting here that this is because Microsoft intentionally supports their old, weird (non-XML) file formats in the new versions of Word. But they wouldn’t have to continue to do that, and there have been other Microsoft apps that haven’t lasted. Anybody remember Microsoft Works? By my understanding, it’s not possible to open a Works file from 15 years ago in current Word - even though Microsoft developed both pieces of software.

I absolutely buy this argument in principle, but not in practice.

The problem is that XML, as implemented by these “open” formats, is user-hostile from a “my software is defunct and I need to get my data out” standpoint. XML is not designed to be read by end users - it’s designed to be able to be parsed by software. And if your data portability fears are assuaged by the notion that Word saves things “in plain text”, I think there’s a misconception in play about what that means in practice.

Here’s an experiment. I opened a fresh, clean copy of Word. I typed in the word “test” three times. One bold, one italic, one unformatted. I saved the file.

What I got is a Zip file with a “docx” extension. So I unzipped it. To recreate my three-word base document, Word creates a Zip file (with a “docx” extension) that contains not one, but ten XML files. My three-word document is about 50 or so kilobytes of XML, when you count all the support files that Word saves out to disk.

The compressed three-word document is over 12k. The main XML file - which logically contains a grand total of three words - is almost 3.8k.

I’ve copy/pasted the body of that “main” doc below.

Looking at the file below, what would you say the document looks like?

If this were your document, and you were going after it at some point in the future without a copy of Word, could you restore it? What about a 20-page document with much more complicated formatting, where the formatting is actually important to the text?

By my count, there are 32 separate namespaces involved here, and obscene amounts of markup. Imagine sifting through a document like this trying to access actual, critically-formatted data without a professionally-coded parser.

And that “open” XML document can’t be searched or indexed by any tools unless they’re willing to unzip the docx file to do the search. Plus, if I’m looking for a specific word, the XML format occasionally actually breaks individual words into separate pieces - see the code below. This means that, to be useful, a search tool has to not only unzip the file, but understand Word’s XML format so that it can glue things back together properly before doing the text search.

This is exactly why I’m a “midway” person regarding plain text. If something doesn’t need to be formatted beyond what Markdown would allow, typically I don’t put it in a tool that barfs out all this extraneous code. In Markdown, this file would be:

Test

**Test**

*Test*

For basic notes, a good deal of correspondence, and other day-to-day stuff that’s more than fine. You can even print it directly from the Markdown parser if you’re not super-picky about the exact location of page breaks.

If I know from the get-go that something does need more extensive formatting, I’ll use an appropriate tool.

For me it’s not about being dogmatic on one side or another - it’s about actually understanding the tradeoffs one is making, and using the format(s) that best optimize my data for portability, readability, and longevity.

Here’s that XML (which we’re calling “plain text” in this discussion) dump of my three-word file. Make sure you side-scroll that “w:document” line, just to see how many XML namespaces there are that you may have to deal with. From any practical standpoint, how “plain” is this text?

<?xml version="1.0" encoding="UTF-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:aink="http://schemas.microsoft.com/office/drawing/2016/ink" xmlns:am3d="http://schemas.microsoft.com/office/drawing/2017/model3d" xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex" xmlns:cx1="http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" xmlns:cx2="http://schemas.microsoft.com/office/drawing/2015/10/21/chartex" xmlns:cx3="http://schemas.microsoft.com/office/drawing/2016/5/9/chartex" xmlns:cx4="http://schemas.microsoft.com/office/drawing/2016/5/10/chartex" xmlns:cx5="http://schemas.microsoft.com/office/drawing/2016/5/11/chartex" xmlns:cx6="http://schemas.microsoft.com/office/drawing/2016/5/12/chartex" xmlns:cx7="http://schemas.microsoft.com/office/drawing/2016/5/13/chartex" xmlns:cx8="http://schemas.microsoft.com/office/drawing/2016/5/14/chartex" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:w16="http://schemas.microsoft.com/office/word/2018/wordml" xmlns:w16cex="http://schemas.microsoft.com/office/word/2018/wordml/cex" xmlns:w16cid="http://schemas.microsoft.com/office/word/2016/wordml/cid" xmlns:w16sdtdh="http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahash" xmlns:w16se="http://schemas.microsoft.com/office/word/2015/wordml/symex" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 w16se w16cid w16 w16cex w16sdtdh wp14">
   <w:body>
      <w:p w14:paraId="4708644C" w14:textId="590FF4F0" w:rsidR="00B45C6B" w:rsidRDefault="00DF12BB">
         <w:r>
            <w:t>T</w:t>
         </w:r>
         <w:r w:rsidR="005A441B">
            <w:t>est</w:t>
         </w:r>
      </w:p>
      <w:p w14:paraId="23BEB705" w14:textId="54347A32" w:rsidR="00DF12BB" w:rsidRDefault="00DF12BB" />
      <w:p w14:paraId="7C40B64A" w14:textId="6D2C3E34" w:rsidR="00DF12BB" w:rsidRPr="0088428C" w:rsidRDefault="00DF12BB">
         <w:pPr>
            <w:rPr>
               <w:b />
               <w:bCs />
            </w:rPr>
         </w:pPr>
         <w:r w:rsidRPr="0088428C">
            <w:rPr>
               <w:b />
               <w:bCs />
            </w:rPr>
            <w:t>Test</w:t>
         </w:r>
      </w:p>
      <w:p w14:paraId="5D563A69" w14:textId="555B46FA" w:rsidR="00DF12BB" w:rsidRDefault="00DF12BB" />
      <w:p w14:paraId="29BEC8DA" w14:textId="44FA92FC" w:rsidR="00DF12BB" w:rsidRPr="0088428C" w:rsidRDefault="0088428C">
         <w:pPr>
            <w:rPr>
               <w:i />
               <w:iCs />
            </w:rPr>
         </w:pPr>
         <w:r w:rsidRPr="0088428C">
            <w:rPr>
               <w:i />
               <w:iCs />
            </w:rPr>
            <w:t>T</w:t>
         </w:r>
         <w:r w:rsidR="00DF12BB" w:rsidRPr="0088428C">
            <w:rPr>
               <w:i />
               <w:iCs />
            </w:rPr>
            <w:t>est</w:t>
         </w:r>
         <w:r w:rsidRPr="0088428C">
            <w:rPr>
               <w:i />
               <w:iCs />
            </w:rPr>
            <w:t xml:space="preserve"> </w:t>
         </w:r>
      </w:p>
      <w:sectPr w:rsidR="00DF12BB" w:rsidRPr="0088428C">
         <w:pgSz w:w="12240" w:h="15840" />
         <w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0" />
         <w:cols w:space="720" />
         <w:docGrid w:linePitch="360" />
      </w:sectPr>
   </w:body>
</w:document>

And please, don’t take my word for it. Grab a docx file, switch the extension to “zip”, and unzip it. You’ll get some folders. Go into the “word” folder, and look for “document.xml”. Pop that open in your favorite plain-text editor, run it through an online XML formatter if you like (Free Online XML Formatter - FreeFormatter.com), and see how much of your document you can actually read. :slight_smile:

3 Likes

I would guess that any developer who makes the claim that “your data is XML and is always available to you” is peddling snake oil.

4 Likes

I’m a web dev, and it’s frustrating to no end how companies will provide what basically amounts to a complete XML dump of a ginormous relational database with a couple dozen namespaces, and talk about importing that data and actually doing useful stuff with it (querying, searching, etc.) like it’s a trivial matter once you have the XML.

I keep having to explain that XML is basically only the raw material for you to start from. Kind of like how having a pre-packaged 10,000 piece LEGO kit with instructions is a far, far different thing from having a built 10,000 piece LEGO model that you can look at. :slight_smile:

1 Like

Mine don’t or didn’t that’s why I moved them out of Word and even out of LibreOffice where possible.

The many versions of word, differences between Win and Mac version and more have caused me no end of issues. So I switched to LibreOffice about 20 years ago and fared much better. But I STILL have tobe aware of format changes and update documents over time to kepe them running properly.

No you can’t. BTDT and I have some documents that took me multiple steps to extricate out of the clutches of Microsoft. Current versions WOULD NOT open them or rad them and I had to resort to lots of other tools to get the data out.

2 Likes

I’ve been looking into Craft, actually! Probably won’t end up with it in the long run because subscription + only available on Apple platforms but we will see.

Although this article makes me slightly more comfortable: