An Interview with Bozhidar Batsov

An interview with Bozhidar Batsov, an Emacs fanatic and author of several popular & useful projects.

A man in a white shirt and wearing glasses smiling at the viewer.
Bozhidar Batsov, smiling at you.

Bozhidar Batsov is an Emacs fanatic and author of several popular & useful projects.

Who are you, and what do you do?

I'm Bozhidar and I love computers in general and programming in particular. My fanatic devotion to Emacs is known world-wide. I spend a lot of my (free) time on GitHub, contributing to various open-source Ruby, Clojure and Emacs Lisp projects. My most notable open-source projects are RuboCop (a linter/formatter for Ruby) and CIDER (a Clojure IDE for Emacs).

I'm a constant learner when it comes to programming and I love playing with new programming languages - right now I'm learning OCaml.

You can learn more about me here.

How did you get interested in that?

Assuming you mean programming - through video games! Like many children I got drawn to computers to be able to play more games and to programming to be able to make games. The full story of how I became a programmer is will be a small novel, so I'll leave it at that.

What tools do you use? (Could be hardware, software, something else entirely.)

I've got two computers - one reasonably powerful desktop computer that I use when I'm at home and one thin and light laptop that I use when traveling. I'm a big believer in "laptops stand for portability" and I really dislike desktop replacement type of laptops. Yeah, some people really need them, but I'd hate to carry constantly with me a laptop that's 2+ kg.

After many years of being a Linux and macOS user I've switched mostly to Windows a couple of years ago and my experience there has been fairly positive. I get access both high-quality Windows apps and great Linux environment in the form of WSL.

I've recently ordered the new MBA with M2 and down the road I might get a M2 desktop machine as well. Like many others I've been really impressed by the performance and power efficiency of Apple's recent chips.

I'm obsessed with mechanical keyboards (and typing in general). I own many keyboards by my favorite one by far is the legendary Leopold FC660C (with Topre switches). I hate being apart from it.

As for the software:

  • Emacs is my main workhorse (shocker, right? :D) and I do all of my programming and blogging there. I've written a lot on the topic in the past. (e.g. https://batsov.com/articles/2011/11/19/why-emacs/)
  • As noted earlier I program mostly in Linux (WSL).
  • Zsh is my preferred shell and these days Windows Terminal is my terminal emulator.
  • I'm using Obsidian for note taking and syncing across devices. I've tried every note taking app that exists before choosing Obsidian.
  • I'm using Microsoft To Do as my todo app. Same as above. :-)
  • 1Password is my go to password manager. Before it I was using LastPass for ages.
  • My emails are powered by Fastmail. I've written a few articles about why I love it on my blog.
  • My blogs are all powered by Jekyll.
  • I'm a big fan of Microsoft's PowerToys applications for Windows power users.
  • I'm a big fan of Signal & Discord when it comes to chat apps.
  • Firefox is my main browser, but I'm forced to use Chrome for some work-related tasks.
  • Like most people today I'm obviously using Slack, Zoom, Google's GSuite, etc.

Besides the tools, what routines help you get your work done?

To be honest - I've always been struggling to maintain a strict routine. Still, I've found helpful personal Kanban, some aspects of the Getting Things Done framework, keeping a lot of notes, todos, reminders and events around.

I also try to segment my days into portions for personal development, OSS work, my day job, hobbies, etc. Having some structure in ones day always helps.

What's the story behind how you started using Emacs?

It's another (very) long story, but the short version is that I was using vim for C programming around 2005 and I read somewhere that Emacs was a better editor for C developers. I read a book about Emacs, I got interested in it and the rest is history. :-) I was also very fortunate to work with some very devoted Masters of Emacs on my next job, who cemented my love for Lisps and Emacs.

Emacs Prelude has probably helped a lot of people get started with Emacs that otherwise might not have. By adding sane defaults and a curated set of packages, it lets users hit the ground running. Do you think it's better to start with something like Prelude, or should users try plain Emacs first and then try to add their own customizations?

Depends on the kind of person you are and deep do you want to go early on. I remember I really struggled with setting up Emacs initially, so something like Prelude would have helped me a lot. I imagine many people are curious about Emacs, but don't have the time to learn it in depth and they would benefit a lot from Prelude.

I think it's also very useful for people who want to build a configuration from scratch, as it gives them a ton of pointers in the right direction (e.g. they know all the packages there are high-quality). Otherwise they'd have to do a lot of additional discovery work.

To answer your question directly - I think that most people would probably benefit from starting with something like Prelude and gradually tuning it to their needs, as opposed from starting from a clean slate.

Emacs has been around for more than 40 years now and is still going strong. What do you think is the reason for the longevity? And why should people prefer to use Emacs today, over something like VSCode or Sublime Text?

I've already answered this question in depth many times. I'd suggest to our readers the following articles:

TLDR; The community around Emacs is small, but extremely devoted to the cause. You can't build such a community with money, as corporations often try to do. And Emacs is mostly aiming at the people who want to build a very customized editor for themselves, instead of using someone else's editor. That will always have some appeal IMO, even if the target group is pretty small.

What resources (books, videos, etc.) or advice do you have for people that are interested in your line of work?

For Emacs:

For Clojure:

Following my 3 blogs would expose them to a lot more resources:

How do you relax or take a break? How do you avoid burnout?

I don't have have any magic recipes, but there are a few things I love to do relax:

  • travel around the world
  • hiking
  • reading books (ideally by the beach)
  • hanging out with friends
  • watching movies and TV shows
  • nothing beats a movie at the cinema for me
  • working on OSS projects (I know, I know)

When I feel I'm close to burnout generally I reduce my open-source work and focus more on my relaxing activities. One can easily see how I go through cycles of a lot of OSS activity and almost none. Occasionally I'd take longer breaks from work as well.

What are some of your favorite things that you've created?

Probably my favorite projects are:

Who or what inspires or motivates you; or, alternatively, that you admire?

Many of the hackers of the 70s-90s are a big inspiration and personal heroes of mine (think people like Dennis Ritchie, Brian Kernighan, Rob Pike, Jamie Zawinski, Paul Graham, etc). Same with the community leaders in every programming community I'm active in. (e.g. here are some of my Clojure heroes - https://metaredux.com/posts/2019/06/10/clojure-heroes.html)

As for my motivation, it comes from two directions:

  • my never-ending desire to learn new things and to tinker with new things
  • the feeling I experience when I've done something useful for others - that's probably the biggest appeal of working on OSS projects for me. I think that most people feel great when they see that their work matters to others.

What would be your dream setup?

A laptop with the size of an MBA, with the power of an MBP, 20 hours of battery, no heat and no noise. :D And two Control keys! I guess I'll have to wait 5-10 years for something like this to happen. Powerful and light laptops that run Linux well would also qualify as dream setup for me.

On a more serious note - I'm quite happy with my existing home setup and other than getting a quieter fan and a more powerful GPU I wouldn't change anything there.

In terms of software - I think Emacs is all the dream setup I would ever need!