Getting by with the not-so-bare minimum

Author: Nathan D. Chane

Tagged: #practices


I've found that I get more things done when there are few distractions. So, I've adopted a leaner approach to my programming set up. I've stopped using language servers, and I typically go for a less colorful color scheme.

This should not be viewed as an exercise in asceticism. I actually had no intent to adopt this way before certain circumstances led me to do so. First, I was programming in the C3 programming language for a while, and hadn't bothered to configure Eglot1 for it even though an LSP implementation existed. And, I had a certain headache once, and simply couldn't process my screen when there were too many colors.

With my language server disabled, and my Emacs color scheme set to one of the Doric Themes2, things felt a bit less noisy. I noticed I was able to keep my thoughts organized for longer. I got more things done.

I don't miss the things I lose in operating this way. Tab completions are nice, but not essential. I might claim that as a programmer one should know the functions they're calling or the names of variables by heart. I also claim that typing the names of functions and variables by hand isn't the end of the world, and that it's good because it makes me use that time to think about the problem at hand, but I might be getting too ahead of myself.

With regards to colorful color schemes, they are just simply too much. More often than not, they are a hindrance when trying to visually navigate a section of code. Provided a minimal color scheme, one can jump to a certain anchor point of code identifiable by an accent color and then follow the structure of the code to land in the desired area. In other words, if I'm looking for what the value of a certain variable might in a function might be, for instance, I can use the color scheme to my advantage. However, I don't need variable declarations (let, var, etc…) and function definitions (fn, =func, public static void, …) to be different colors since the structure of the code tells me what I'm looking at anyway. The combination of a minimal color scheme and structural arrangement of code is more than enough for maintaining ease in visual navigation of code.

However, I still use a language server from time to time, especially during refactoring. Go-to-definition, and Go-to-references can also be helpful in unfamiliar codebases. If the codebase is already familiar, I make good use of grep, and Emacs's query-replace-regexp.

This all results in a much more peaceful programming workflow. I don't miss the distracting, sporadic pop-ups of completion menus, or slow LSP warning and error indicators in my code, nor do I miss the flamboyant color schemes. Without these things, I am a more productive person. When I'm a productive person, I sleep better.

Footnotes:

1

Emacs' built-in LSP integration

2

I used to use sexy-monochrome, but it doesn't really accent just the right elements for me. Doric themes is also superior in that it provides both light and dark themes and even variations of them.