January 30, 2022

Simple and Complex

Simple?Simple?

I have been playing with Emacs for the last month. There is no good reason to do so. I was bored and wanted to tinker. I changed my configuration in Emacs to an Org-mode file. It is an interesting way of configuring Emacs. You can have notes and comments to yourself and use bits of emacs-lisp to generate the required Emacs configuration files.

config in org-modeconfig in org-mode

Tweaking Emacs is a tinkerers dream. I learn new things from other people’s configuration and incorporate it into Emacs. Everything goes to hell. Nothing works. I spend time troubleshooting the configuration. More often that not, it is something silly that I either left out or included. A couple hours later, I have less hair, and the mistake becomes clear. Fix it, Emacs works, and I feel a sense of relief and accomplishment. It dawns on me, what an absolute waste of time that was. The sense of accomplishment fizzles. I realize that changing how the bullet looks in an org file is not worth two hours of my time. Maybe this is debatable. I understand if the right bullet character is critical to your mental health. We all have our vices1.

I wanted to stop myself from this dive into the rabbit hole of Emacs customization.

I opened iA Writer2.

Simple

iA Writer is simple. Deliberately so. In some ways, Emacs is the antithesis of iA Writer. Emacs is an OS which happens to include a text editor3. iA Writer is a Markdown focused text editor. Emacs is fully customizable. You can bend Emacs to provide you with the exact environment you desire. iA Writer is opinionated software, in that it provides you with an environment. The choices are minimal. You can choose between three defined fonts. Light or dark mode. And that is it. There are assorted other choices you can make, but the environment is barely customizable.

Contrast that with Emacs. Sacha Chua, a celebrity in the Emacs world, has a configuration file which runs 13,300+ lines4. I am blown away by the detail and the intricacies of that file. Wow!

Back to Simple or The Charm of iA Writer

iA Writer is by design “simple.” What do I mean by “simple?”

If you look at all the functions that a text editor can perform, iA Writer only deals with a subset of the functions. It is geared only towards Markdown. It is not interested in being the program you use to tackle text, it is designed to let you write in text. There is a difference. You don’t get to regex your way to text nirvana, you have find and replace, but it is not as full-featured as using regex patterns.

You get a writing environment out of the box. Full screen mode, typewriter scrolling and a good grammar checker function. iA Writer has the ability to manage your files and folders, but it doesn’t have projects or workspaces. The core function, and the program is obsessive about its focus, is on writing. That is what it does well.

iA Writer handles large files without any problems, but does not provide the ability to fold sections (I wish they would add that). Lists auto-continue. Syntax highlighting of Markdown code is superb. It is designed with the focus on the writer.

As you can tell, I love being in it. I could go on eulogizing about iA Writer but that is not the focus of this article.

The dichotomy between simple and complex is what I want to address.

Complexity Is Not a Panacea

There is power in complexity. Power to tweak every little environmental variable to make sure that you have complete control over your writing environment. Let me give you an example.

Emacs with writeroom-modeEmacs with writeroom-mode

This is how this article looks in my configuration of Emacs, with global-writeroom mode enabled. I love it. But I want the font to be a tad smaller. I went through the site for the plugin at joostkremers/writeroom-mode: Writeroom-mode: distraction-free writing for Emacs.. Couldn’t figure out how to configure writeroom-mode. Didn’t know what the options are, how to tweak them. Got nothing. Tried google searches. Nothing. Now this is not the plugin developer’s fault. It is my lack of knowledge which is the problem, but Emacs being customizable doesn’t mean much to me if I can’t figure out how to customize it.

Complexity assumes that you have knowledge or know how to get the relevant knowledge. That implies a learning curve. To be able to make Emacs provide you an environment to write, you have to give up on writing, and learn how to use Emacs. Every minute you use to learn Emacs is time you could have spent writing. I know that is heresy. It happens to be true.

The same is true of any of the major editors that you care to pick up. BBEdit ships with a manual which is 434 pages long. Sublime Text, VSCode, TextMate or VIM, all have similar learning curves. And they don’t provide the convenient learning resource of a manual which ships with the product.

Scrivener, the pre-eminent writing software, has a whole cottage industry around it with folks selling training on how to use Scrivener. It ships with a manual which is 905 pages long.

Don’t get me wrong. I love that BBEdit and Scrivener ship with manuals. But there is a commitment of time required to learn how to use the software to do what you want. Write.

Complexity is fantastic, once you come to grips with the inner workings of the product.

Org-Mode and Why Doesn’t Everyone Use It?

My foray into Emacs was courtesy of a video, Emacs For Writers - YouTube. I got intrigued by Org-mode and started the journey of trying to figure out how to live in Org-mode and Emacs. For a while there I was dismissive of people who stuck to BBEdit or TextMate for their writing. My reasoning was that there are better solutions available which will let you do everything in text files. Write, manage your life, manage your notes, manage your whole computer life. Why would you settle for text editors which did not let you do that?

The answer was simple. Why would you do that?

The stock Calendar app and the Reminder app in macOS can do a great job of managing your schedule and your life. Programs like Things, or OmniFocus can do that better. Why don’t you use the tool which is designed for the task? Use task management apps to manage your tasks and your text editor to manage your text editing needs.

When you choose specialized tools, what you are doing is reducing complexity. You are redefining the things your text editor has to deal with to get it to do what it is good at. Giving you the opportunity to write.

Sure BBEdit doesn’t have anything comparable to Org-mode and Org-mode is a fantastic piece of engineering. But it is not imperative that everyone needs to use it. There are other solutions and they work as well, and sometimes, better.

Bonus Tip to Developers: Design a product with the feature set of Org-mode in an environment like iA Writer. Org-mode without Emacs. That would be special.

The Lure of Simplicity

Whenever I am in a full-fledged text editor I get the feeling that I could do things better. Each of these products are feature-rich and have a lot of different ways of achieving tasks which are repeated in the act of writing. Move to the start of a sentence, move to the end of a sentence, move to the start of a paragraph, or the end of one. All these things have keyboard commands you can use. Knowing them is useful. Because the full-fledged editors do more, they have more commands for you to learn.

iA Writer doesn’t do as much. Thus there is less to learn. A lot less to learn.

I learned all the keyboard commands available in iA Writer. I added a few Keyboard Maestro macros for oft repeated tasks and now I know iA Writer.

There is pleasure in that. Knowing everything there is to know about a program and being able to use it with expertise is a revelation. I feel empowered. I don’t have to struggle. I don’t have to beat myself up over my lack of knowledge. I can write. Which is what this exercise was all about.

What Do I Prefer?

Personally I prefer a middle ground. I want to be able to customize some basic things, but not have the customizing effort take up my life.

These are some of the things I need to customize:

  1. I need to use my own font. iA Writer Mono is good, but I prefer to use my own font. PragmataPro Mono at present.
  2. I like the Solarized themes. I want to use those.
  3. I want to control line width (90 characters) and line spacing.

I like the ability to manage my tasks in text files. Org-mode does that. Tasks in Obsidian does that too and I find it easier. The other advantage? Markdown files and not org files. Obsidian through the plug-in system has managed to replicate a lot of the functionality of Org-mode. It is an easier environment to get familiar with and the learning curve is not as steep. I have been living in Obsidian for a while now and am familiar with its nuances enough to be comfortable in it.

I have settled on Obsidian for the time being. It is complicated enough to keep me learning and simple enough for me to get some real work done. iA Writer is used for final edits. But I spend my life in Obsidian.

Conclusion

There is a charm to simple. Complexity is nice but comes at a cost. Find a compromise which suits you, or don’t compromise. It is your environment. Keep writing.

Thanks to Photo by Agnese Lunecka from Pexels

macosxguru at the gmail thingie.


  1. Jack Baty solved my quest with (setq org-superstar-headline-bullets-list '("⁖" "◉" "○" "✸" "✿")).↩︎

  2. iA Writer is on beta for version 6. It is adding a few nice features to the application and I am excited by the additions.↩︎

  3. It is not my line. I came across it on my Internet travels.↩︎

  4. Not all of it is code. The org file contains several complete blog posts and detailed explanations for each of the configuration tweaks.↩︎


software writing


Previous post
QB 004: Rectangle Pro Manages Windows Product: Rectangle Pro Price: Purchase for US$9.99 Window management is a popular software category on macOS. There are a ton of competitors in this
Next post
OutlineEdit 3 Evolves Product: OutlineEdit 3 Price: $32.99 I have written about OutlineEdit before. OutlineEdit Is Perfect for Sketching Ideas & Making Lists - Bicycle