Plain text has been around for decades and it’s here to stay

(unsung.aresluna.org)

129 points | by rbanffy 11 hours ago

19 comments

  • TazeTSchnitzel 1 hour ago
    > Fun to see a contemporary take on something that peaked between 1970s–1980s

    Maybe that was the peak, but you had some very good TUIs in the early 1990's for DOS apps, where Windows hadn't quite completely taken over yet, but you very likely had a VGA-compatible graphics card and monitor, meaning you had a good, high-resolution, crisp and configurable-font text mode available, and also likely had a mouse. This is the stuff I grew up with: QBASIC and EDIT.COM for example. Bisqwit has a cool video about how some apps from that era could have a proper mouse cursor, even: https://www.youtube.com/watch?v=7nlNQcKsj74

    • safety1st 1 hour ago
      The peak of TUIs is now. Take a look at Omarchy, an entire operating system built around terminals and config files, it's nirvana. I can only imagine how much farther down this road things may go as we enter a world where the primary interface is conversation with the machine in text. I'm sure I'll get downvoted for that last part because Reddit -- (cough) I mean Hacker News - hates AI, but I'm genuinely excited for the future.
      • gf000 24 minutes ago
        But why?

        You easily have 4k pixels, why use a tiny subset of those in a very inefficient way? We have proper hardware to make a bunch of these computations actually fast, and yet we should stuck with drawing relatively expensive text everywhere?

        If you only care about the UX of TUIs, that I can stand behind (though mostly as a guideline, it doesn't fit every workflow), but you can do that with a proper GUI just as well.

        • cfiggers 8 minutes ago
          > If you only care about the UX of TUIs, that I can stand behind

          This is a confusing concession. Of course we love TUIs because of the UX, what other reason is there?

          Constraint breeds consistency and consistency breeds coherence.

          Take 1,000 random TUI designers and 1,000 random GUI designers and plot the variations between them (use any method you like)—the TUI designers will be more tightly clustered together because the TUI interface constrains what's reasonable.

          Yes of course you CAN recreate TUI-like UX in a GUI, that's not the issue. People don't. In a TUI they must. I like that UX and like that if I seek out a TUI for whatever thing I want to do, I'm highly likely to find a UX that I enjoy. Whereas with GUIs it's a crapshoot. That's it.

      • user3939382 37 minutes ago
        I hope it’s inevitable. Most users’ computing workloads by far are text oriented. The terminal is capable of flexbox now. Current GUIs create massive complexity and power draw relative to their value. Over a long enough arc, economic inefficiency is doomed.
      • user3939382 35 minutes ago
        I hope it’s inevitable. Most users’ computing workloads by far are text oriented. The terminal is capable of flexbox now. If we built new terminals from first principles it wouldn’t look like bash. Current GUIs create massive complexity and power draw relative to their value. Over a long enough arc, economic inefficiency is doomed.
  • ssivark 8 hours ago
    Couldn't help riffing off on a tangent from the title (since the article is about diagramming tools)...

    Dylan Beattie has a thought-provoking presentation for anyone who believes that "plain text" is a simple / solid substrate for computing: "There's no such thing as plain text" https://www.slideshare.net/slideshow/theres-no-such-thing-as... (you'll find many videos from different conferences)

    • rmunn 4 hours ago
      Haven't watched the videos yet, but from the slides, it looks like part of the issue he was talking about was encodings (there's a slide illustrating UTF-16LE ve UTF-16BE, for example). Thankfully, with UTF-8 becoming the default everywhere (so that you need a really good reason not to use it for any given document), we're back at "yes, there is such a thing as plain text" again. It has a much larger set of valid characters, but if you receive a text file without knowing its encoding, you can just assume it's UTF-8 and have a 99.7% chance of being right.

      FINALLY.

      • thaumasiotes 2 hours ago
        > Thankfully, with UTF-8 becoming the default everywhere (so that you need a really good reason not to use it for any given document), we're back at "yes, there is such a thing as plain text" again.

        Whenever I hear this, I hear "all text files should be 50% larger for no reason".

        UTF-8 is pretty similar to the old code page system.

        • mort96 2 hours ago
          Hm? UTF-8 encodes all of ASCII with one byte per character, and is pretty efficient for everything else. I think the only advantage UTF-16 has over UTF-8 is that some ranges (such as Han characters I believe?) are often 3 bytes of UTF-8 while they're 2 bytes of UTF-16. Is that your use case? Seems weird to describe that as "all text files" though?
          • thaumasiotes 1 hour ago
            UTF-8 encodes European glyphs in two bytes and oriental glyphs in three bytes. This is due to the assumption that you're not going to be using oriental glyphs. If you are going to use them, UTF-8 is a very poor choice.
            • mort96 1 hour ago
              UTF-8 does not encode "European glyphs" in two bytes, no. Most European languages use variations of the latin alphabet, meaning most glyphs in European languages use the 1-byte ASCII subset of UTF-8. The occasional non-ASCII glyph becomes two bytes, that's correct, but that's a much smaller bloat than what you imply.

              Anyway, what are you comparing it to, what is your preferred alternative? Do you prefer using code pages so that the bytes in a file have no meaning unless you also supply code page information and you can't mix languages in a text file? Or do you prefer using UTF-16, where all of ASCII is 2 bytes per character but you get a marginal benefit for Han texts?

              • thaumasiotes 1 hour ago
                > Do you prefer using code pages so that the bytes in a file have no meaning unless you also supply code page information?

                Yes. Note that this is already how Unicode is supposed to work. See e.g. https://en.wikipedia.org/wiki/Byte_order_mark .

                A file isn't meaningful unless you know how to interpret it; that will always be true. Assuming that all files must be in a preexisting format defeats the purpose of having file formats.

                > Most European languages use variations of the latin alphabet

                If you want to interpret "variations of Latin" really, really loosely, that's true.

                Cyrillic and Greek characters get two bytes, even when they are by definition identical to ASCII characters. This bloat is actually worse than the bloat you get by using UTF-8 for Japanese; Cyrillic and Greek will easily fit into one byte.

                • harmonics 1 hour ago
                  As someone who has been using Cyrillic writing all my life, I've never noticed this bloat you're speaking of, honestly...

                  Maybe if you're one of those AI behemots who works with exabytes of training data, it would make some sense to compress it down by less than 50% (since we're using lots of Latin terms and acronyms and punctuation marks which all fit in one byte in UTF-8).

                  On the web and in other kinds of daily text processing, one poorly compressed image or one JavaScript-heavy webshite obliterates all "savings" you would have had in that week by encoding text in something more efficient.

                  It's the same with databases. I've never seen anyone pick anything other than UTF-8 in the last 10 years at least, even though 99% of what we store there is in Cyrillic. I sometimes run into old databases, which are usually Oracle, that were set up in the 90s and never really upgraded. The data is in some weird encoding that you haven't heard of for decades, and it's always a pain to integrate with them.

                  I remember the days of codepages. Seeing broken text was the norm. Technically advanced users would quickly learn to guess the correct text encoding by the shapes of glyphs we would see when opening a file. Do not want.

                • mort96 1 hour ago
                  UTF-8 does not require a byte order mark. The byte order mark is a technical necessity born from UTF-16 and a desire to store UTF-16 in a machine's native endianness.

                  The byte order mark has has no relation to code pages.

                  I don't think you know what you're talking about and I do not think further engagement with you is fruitful. Bye.

                  EDIT: okay since you edited your comment to add the part about Greek and cryllic after I responded, I'll respond to that too. Notice how I did not say "all European languages". Norwegian, Swedish, French, Danish, Spanish, German, English, Polish, Italian, and many other European languages have writing systems where typical texts are "mostly ASCII with a few special symbols and diacritics here and there". Yes, Greek and cryllic are exceptions. That does not invalidate my point.

    • lelanthran 2 hours ago
      I can't tell what the argument is just from the slideshow. The main point appears to be that code pages, UTF-16, etc are all "plain text" but not really.

      If that really was the argument, then it is, in 2026, obsolete; utf-8 is everywhere.

      • benj111 2 hours ago
        He has a YouTube channel, there's a talk on there.

        He also discusses code pages etc.

        I don't think the thesis is wrong. Eg when I think plain text I think ASCII, so we're already disagreeing about what 'plain text' is. His point isn't that we don't have a standard, it's that we've had multiple standards over what we think is the most basic of formats, with lots of hidden complications.

    • carra 1 hour ago
      I read that article long time ago, and for me it's a hard disagree. A system as complex and quirky as Unicode can never be considered "plain", and even today it is common for many apps that something Unicode-related breaks. ASCII is still the only text system that will really work well everywhere, which I consider a must for calling something plain text.

      And yes, ASCII means mostly limiting things to English but for many environments that's almost expected. I would even defend this not being a native English speaker myself.

  • 2b3a51 3 hours ago
    Tangent to article: text character based charts for statistics. Decades ago I had an education version of MINITAB that ran under DOS and did scatter diagrams and dotplots and box and whisker plots from text characters (you could use pure text, I think proper ASCII or you could set an option to use those DOS drawing characters). The idea was to encourage initial data exploration before launching on formal statistical tests.

    Anyone know of a terminal program that can do proper dotplots?

  • 0x1da49 52 minutes ago
    Plain text keeps winning not because it’s perfect, but because it’s the lowest common denominator that never dies — everything else eventually breaks, changes, or gets abandoned. The funny part is people argue about encodings and structure, but in practice UTF-8 + a bit of convention (Markdown, JSON, etc.) has already become the “good enough standard.”

    Curious though — do you think the real limit of plain text is readability at scale (like configs turning messy), or is it more about lack of enforced structure compared to proper systems?

    • arter45 7 minutes ago
      I think the real limit of plain text is pretty obvious: you cannot embed pictures in it.

      It’s like SMS vs MMS or modern chat. With pure text, you can at best add a link to a picture (which could get rotten or inaccessible for other reasons), but you cannot directly graphical content.

  • dwb 4 hours ago
    Plain text is great as far as it goes, but when it comes to structure you start from zero for every file. There’s always someone getting wistful about ad-hoc combinations of venerable Unix tools to process “plain text”, and that’s fine when you’re in an ad-hoc situation, but it’s no substitute for a well-specified format.
    • adityaathalye 3 hours ago
      XML, JSON, YAML, RDF, EDN, LaTeX, OrgMode, Markdown... Plenty of plaintext, but structured information formats that are "yes, and". Yes, I can process them as lines of plain text, and I can do structured data transformations on them too, and there are clients (or readers) that know how to render them in WYSIWYG style.
      • layer8 29 minutes ago
        XML arguably isn’t plain text, but a binary format: If you add/change the encoding declaration on the first line, the remaining bytes will be interpreted differently. Unless you process it as a function of its declared (or auto-detected, see below) encoding, you have to treat it as a binary file.

        In the absence of an encoding declaration, the encoding is in some cases detected automatically based on the first four bytes: https://www.w3.org/TR/xml/#sec-guessing-no-ext-info Again, that means that XML is a binary format.

      • dwb 3 hours ago
        If that’s our definition of “plain text”, sure. I would still rather our tools were more advanced, such that printable and non-printable formats were on a more equal footing, though. I always process structured formats through something that understands the structure, if I can, so I feel that the only benefit I regularly get out of formats being printable is that I have to use tools that only cope with printable formats. The argument starts getting a bit circular for me.
  • draven 4 hours ago
    Also: M-x artist-mode in emacs.
  • amelius 28 minutes ago
    Plain text is great, but if you're holding a hammer ...
  • suprjami 7 hours ago
    The list at the top could be longer:

    - https://asciiflow.com/

    - https://asciidraw.github.io/

    Anybody know more?

  • dlcarrier 7 hours ago
    From the title, I was not expecting a bunch of extended ASCII characters.
    • Freak_NL 5 hours ago
      The article mentioned that the use of 'ASCII' within the context of those tools should not be seen as the limited character set ASCII. Personally, I would avoid mentioning ASCII at all.

      The title just talks of plain text though, and plain text usually means UTF-8 encoded text these days. Plain, as in conventional, standardised, portable, and editable with any text editor. I would be surprised if someone talked about plain text as being limited to just ASCII.

      • benj111 2 hours ago
        I would?

        Would an emoji count as plain text?

        What about right to left text? I have no idea how many editors handle that.

  • OuterVale 8 hours ago
    Unsung is one of the best little blogs around. Well worth checking out the rest of the posts.
  • lofaszvanitt 8 minutes ago
    All plaintext bullshit should be eradicated. Fucking useless as a medium when displaying and handling complex tasks.
    • tom_ 6 minutes ago
      I'm sorry you're having a bad day.
  • keyle 4 hours ago
    I'm all for it, but it's dangerously mixing ASCII with the meaning of plain-text...
  • nullhole 7 hours ago
    I have a mixed opinion of unicode, but it's hard not to love the box-drawing / block-element chars.
  • Joel11 3 hours ago
    It's good to see the plain text, it's been a while that people wanting them.

    So many users wants the Special fonts but in here simple is Special to eyes and Mind.

    As a developer I agree. Sometimes simplicity is more Special and powerful than complex formats.

  • shevy-java 4 hours ago
    Text and text files are simple. I think this is their number #1 advantage.

    There are limitations though. Compare a database of .yml files to a database in a DBMS. I wrote a custom forum via ruby + yaml files. It also works. It also can not compete anywhere with e. g. rails/activerecord and so forth. Its sole advantage is simplicity. Everywhere else it loses without even a fight.

  • LePetitPrince 16 minutes ago
    [dead]
  • alex1sa 3 hours ago
    [dead]
  • edelkas 9 hours ago
    [dead]