Thorsten Ball

Thorsten Ball

Who are you, and what did you write?

​​My name is Thorsten Ball. I’m a software engineer and wrote Writing An Interpreter In Go and its sequel Writing A Compiler In Go.

I also publish blog posts at thorstenball.com - far less frequently than I’d like to.

What hardware and software do you write with?

With the exception of a comfortable chair (I have a Steelcase Gesture) I really don’t care about hardware when writing. I can write on my MacBook Pro, or on my Linux/Windows machine, or on any other computer and keyboard - as long as the keyboard layout is US ANSI, because that’s what I’m used to. I do have a mechanical keyboard (Durgod Taurus K320) and it feels nice, but I wouldn’t say it’s essential.

Software, now that’s important. Everything I write starts out as a Markdown file in Vim/Neovim. Bullet points at first, then sentences, then paragraphs. I edit as I go along: cut a sentence here, insert it over there, delete this word, replace that one, move this paragraph up, get rid of this bit here, that one over there, this whole thing and this one too.

Years ago I figured out that this is what keeps me productive: start with a rough – and I mean rough – draft, hammer it into shape. Never hesitate to put something on a blank page. It’s better to put something bad down now and edit it later than to hesitate and not write anything. It creates momentum.

Since writing to me is editing I can’t imagine writing with pen & paper. Frankly, I think all these articles praising the wonders of writing by hand reek of “kids will never know what it’s like with all of these affordances nowadays”. It’s stupid. We have computers now and they’re wonderful: copy & paste, undo & redo (or even undo trees), infinite space to put any idea down, builtin dictionaries, spell checkers. Take your pen and your paper and get out of here.

Speaking of dictionaries: I love the Dictionary on macOS. It allows you to search in multiple dictionaries at once. I can look up a word in Webster’s 1913 dictionary (which you should also consider using), in a thesaurus, in the Oxford dictionary, see its German translation, or what Wikipedia says about it.

Besides the editor and the dictionary there’s one other tool that I need to mention: Pandoc. I use it to convert Markdown files to PDF, HTML, ePub, Kindle. It’s fantastic. Don’t ask me about my specific Pandoc templates, though, because it’s an embarrassing pile of hacks that I got from googling LaTeX questions on top of the default Pandoc templates.

When and where do you write?

Preferably in the morning.

It’s not that I’m a morning person, it’s more that I’m not an evening or night person. I like to get stuff done as soon as possible, comfortably resting in the knowledge that I’m done for the day. Writing in the morning gives me that feeling and it creates, again, momentum. It’s important.

The other reason to write in the morning is that it’s an easier commitment to hold: less interruptions, less invitations. Everybody’s sleeping. You won’t have to fight to keep a daily 6:30-7:30 writing slot. In the evening, though, it’s going to take more effort to keep showing up.

Where I write doesn’t matter as much. I do have a dedicated office in our house that I use to write and program in the morning (and later in the day: work), but as long as there are no interruptions and I can sit comfortably (harder to achieve than one might think) I can write everywhere. Large parts of Writing An Interpreter In Go were written on trains, because I wrote on my daily commute (fixed schedule! in the morning!).

What's your dream writing setup?

My #1 dream: a fixed window of time in the morning to write. Three or four non-interruptible, non-movable, non-negotiable hours every day that I can use to do some writing and programming. Say every day from 6:30 to 9:30.

Would I use the whole time slot to write/program? Probably not. Sometimes you get three sentences and other times four pages. Each day is different. But there’s magic in reserving time to simply try to get something done.

Other than that I’d love to have a better dictionary. The dictionary on macOS is great, as I said, but I think it could be even better if it, for example, would allow me to look up words in books by specific authors and see how they used them in a sentence.