Issue #67: Text Editors

For Lack Of A Better Word

Text is a surprisingly dense medium. Despite what the common pretension of online folklore states, I consider the adage, “an image is worth a thousand words” to be a blatant slur, and this magazine is my feeble attempt at demonstrating such a thesis. Text is powerful, deep, and intricate; if anything because it can be misinterpreted and reinterpreted a piacere.

Text is among the most powerful inventions of mankind. Religions have grown upon sacred texts, and those same religions have been broken apart because of blasphemous texts. Writers have been threatened, banned, incarcerated, even immolated because of their texts. Whole libraries have been burned by ignorant mobs at various points in human history. Nations have been created with the sole purpose of granting freedom of creation and distribution of written texts banned somewhere else. Popular works of literature have brought immense prestige and celebrity to their authors, some of which are regularly given various international prizes. Blockbuster movies are based on novels, short stories, and scripts, and the same movie industry is brought to its knees every time writers strike. Speaking about blockbusters, the Joker once joyfully claimed that “the pen is truly mightier than the sword”.

Text, text, text.

The aforementioned sacred scriptures give text a predominant role. Taken literally and stripping all context, the first verse in the opening chapter of the Gospel of John (“In the beginning was the Word, and the Word was with God, and the Word was God”) literally sounds like advertising copy from Microsoft in the 1990s.

From a historical perspective, text has always been the primary interaction medium used to interact with computers. Before GUIs, we used command lines and terminals, “piping” commands from stdout to stdin. Before the World Wide Web, we interacted via email or through BBS, Usenet, and Gopher, all using pure ASCII text. Long before Skype or Zoom, there were text-based tools such as talk, ICQ and MSN Messenger.

And lo and behold, our first, Turing-test winning interaction with Generative AI was, without surprise, a text-based chatbot. The biblical analogy, in this case, is particularly striking: the first chapter of the Book of Genesis sounds exactly as if God were talking to DALL-E or Midjourney: “let there be light”, “let the dry land appear”, you get the gist.

For many authors, the written word can be taken to an extreme of alchemy and esoteric knowledge. Suzanne Jill Levine, translator and publisher of works by Jorge Luis Borges in English, reminds us of “The Aleph”, in which

the first letter of the Hebrew alphabet becomes the point in time and space that contains all time and everything in the universe.

Was Borges a software developer? Diving deeper in the internal workings of our beloved computing machines, we find that TEXT is the familiar name of the “code segment”, the subdivision of virtual memory assigned to a single process running in your computer holding, precisely, the code of the program to be executed–also ready to be overwritten by hazardous stack overflow bugs, unless your code is written with Rust, of course.

Text is also the code driving the mind behind the keyboard, and the keyboard, in turn, drives the mind that writes the text. Various authors (Friedrich Kittler, Arthur Krystal, Philip LeVine, and Ron Scollon, for example) claim Friedrich Nietzsche said that “our writing tools are also working on our thoughts”. Unfortunately, I have not been able to find the precise source (and the original German formulation) of this phrase, but it apparently had to do with Nietzsche being among the first owners of a typewriter, and probably the first philosopher to do so, at the end of the nineteenth century.

Ask any diehard Vim user who installs the “vim plugin” or “vim mode” for whatever other editor they have to use, and we can start to see a hint of truth in Nietzsche’s assertion. Our tools shape our writing, whether we are conscious of this fact or not.

But let us go back to typewriters for a minute. Throughout the twentieth century, writing machines evolved from crude early experiments to the sophistication of the IBM MT/ST in 1967. Word processor software subsequently relegated them to the status of eBay-worthy collector items during the 1980s and 1990s. This final step was better described in detail by some important authors, albeit rather unknown in tech circles: Ray Hammond, in his 1984 book “The Writer and The Word Processor”; then Zachary Leader, in his 1991 book “Writer’s Block”; and Matthew Kirschenbaum, in his 2016 book “Track Changes: A Literary History of Word Processing”. Oh, and  “Word Processor of the Gods” by Stephen King, who most probably wrote it on his legendary Wang computer.

We still have plenty of typewriter lovers around. The most well known is Tom Hanks, who not only wrote a book about them, but released a famous iOS application to go with it.

(For the record, spoiler alert: I agree with him.)

Writers are a finicky bunch. The variety of writing software available today boggles the mind, yet we learn that J.K. Rowling and Stephen King use Microsoft Word. We chuckle upon learning that George R.R. Martin, the author of Game of Thrones, is still using WordStar for MS-DOS, or that Christopher Nolan considers himself the “ultimate Luddite” when it comes to screenwriting software:

Christopher: Yes, it’s time looping back on itself. I remember very clearly. I’ve always used ScriptThing, which then became Movie Magic. I remember when it went to Windows, and it slowed down tremendously. I was like, “Can you run it on DOS?” You could run it on DOS. It has a DOS emulator within Windows.

John: Wild.

Christopher: I am the ultimate Luddite. I still go back to my Royal manual typewriter and do the odd scene on that just to reconnect with it.

(Ironically enough, a scriptwriting AI tool bears his name.)

Applications such as Scrivener, Dabble, LivingWriter, Jutoh, and Ulysses are the equivalent of IDEs for novelists and screenwriters.

But I am digressing. Enough with philosophers, well-known writers, and movie directors. Let us focus on the preferred kind of creator for readers of this magazine, the software developer, and their continuous infatuation with text editors.

Let us be honest: our field is all about infatuation. Tabs versus spaces. Modal versus non-modal. Plain-text editors versus IDEs. JetBrains Mono versus IBM Plex. Vim versus Emacs. EditPlus versus UltraEdit. BBEdit versus TextMate. AI-enabled versus none. And now we are perceiving yet another battle in this never-ending holy war: Zed versus Visual Studio Code.

What is the bare minimum set of features that one expects in a coding text editor? Syntax highlighting, Git support, multiple undo and redo, multiple encodings with UTF-8 as default, (very) large file handling (log files, anyone?), line numbers, dark mode, configurable fonts… and inserting spaces instead of tabs.

(Hey, my online magazine, my rules.)

Oh, and plugins and extensions. Lots of them. Gotta love ecosystems.

Thankfully, we are in 2024, and many code editors provide such feature set. On Windows, we have EditPlus, UltraEdit, Notepad++ (based on Scintilla), or KEDIT. On Unix, we have the saint trinity of Vim, Emacs, and pico / nano. Oh, and JOE. On the Mac, Espresso, Nova, BBEdit, Smultron, or TextMate (made famous by the now historic 2005 demo of Ruby on Rails by David Heinemeier Hansson). And across platforms, the venerable jEdit, the obscure Thonny, or the upcoming JetBrains Fleet.

In terms of market share and popularity, the big winners at the time of this publication are Visual Studio Code and Sublime Text, followed by a few newcomers aiming for the top spot in the upcoming years: Neovim, Zed, and Brackets.

There is no shortage of IDEs for those expecting more features… or putting up with their “magic”: the JetBrains suite, Xcode, Visual Studio, Eclipse, NetBeans, Qt Creator, Lazarus, KDevelop, or GNOME Builder.

If you are lazy and do not want to install anything else on your system, every desktop environment comes bundled with a default editor that is usually just good enough to get started: vi, Notepad, TextEdit, gedit, Kate, Leafpad, FreeDOS Edit, and so on.

The market for Markdown editors is exploding: Bear, Byword, Obsidian, MarkdownPad, Apostrophe, Typora (the choice of this author), iA Writer, Joplin, and so many more.

If you are in the market for LaTeX-capable text editors, you might want to consider TeXShop, Texmaker, Overleaf, Texifier, Compositor, Kile, TeXstudio, or LyX.

History boffins will probably be trying WordStar, TECO, MacWrite, Bravo, LocoScript, jim, ed, edlin,, and the recently discontinued Atom on their retrocomputing systems.

If you are the experimental kind of person, you will be interested in trying out Wily, Sam, or Acme; the latter two created by Rob Pike, of Go programming language fame. Also noteworthy, Acme’s UI was inspired by Niklaus Wirth‘s Oberon system.

Finally, the adventurous among you might consider the possibility of writing yet another text editor. What could possibly go wrong? In that case, take the time to learn how they work internally, including concepts such as memory mapping, gap buffers, piece tables or ropes. You can also peruse the source code of Microsoft Word for Windows 1.1a for ideas.

(But please, please, please, do not take inspiration from the abomination that is WordPress’ own Gutenberg editor. Please, just do not.)

There are many more text editors that could fit in this article. This is the reason why I pray my readers to indulge this author, should their preferred one not appear in any of the lists above.

The immense variety of writing tools is a direct reflection of our own neurodiversity. Without falling into clichés, and despite what Apple might say about this, we all think differently, all the time. We all need a different tool to express our thoughts, and our modern software market has no shortage of them. Most importantly: we all have something to say, and we all have a different way to say it.

Even more important still: the whole idea of an “editor war” is a pointless exercise, worthy only of the lesser mind. Those who insist on indulging in such stupid matters might want to review their priorities in life. Let people use whatever editor they fancy and need at every single moment of their careers, and teach younger generations to respect those choices; just avoid entering arguments over the subject. There are plenty of more urgent matters to take care of, in and out of our fairly limited (and decaying) programming world.

But beware of the fact that your writing tool of choice is also shaping, if not your content, at least your form. Cross-training, in the form of switching editors every so often or for different tasks, might be a healthy option for your brain.

And, if all else fails, paper notebooks and pens are always available at a nearby store. You should try them, they are wonderful.

Cover photo by Amador Loureiro on Unsplash.

Donate using Liberapay

Adrian Kosmaczewski is a published writer, a trainer, and a conference speaker, with more than 25 years of experience in the software industry. He holds a Master's degree in Information Technology from the University of Liverpool.