No syntax highlighting
I waited years to write this post
Since 2021.09.05 to be precise, but I had to wait. I wanted to be sure that I not just imagine things and test it in multiple scenarios over long period of time.
Minimizing code highlighting
I was already on track of minimizing the amount of highlighted code way before 2021. The Visual Studio at that point was making a rainbow out of code but I already switched to Vim which had simple keyword based highlighting. I even had two productions bugs because of Visual Studio's excessive coloring as it made me stop to actually read the code. I would just skim it and if colors looked correct then the code seemed correct - which was not always the case.
In Vim I was a big fan of solarized theme and used it heavily. It was less of a rainbow than what Visual Studio was doing but it would still try to color every possible keyword. After few years I switched to one of the Vim's default themes which again resulted in less colors on the screen.
All of that was before 2021 when I got inspired by Sean Barrett coding videos. His theme would color only comments. He claimed that colors distract and make it harder to read linearly as your eyes are attracted to the group of colors and you end up jumping around and only skimming the code. That matched what I experienced in Visual Studio before. So I wanted to try his approach but at the beginning it was too hard for me to work with only comments highlighted. At this point I don't remember from where I got the idea to also color the strings but that was enough for me to start the transition.
Comments and strings only
The switch required some effort as there were no existing themes which would color only comments and strings. I had to make my own and then I had to get used to it. Here are the ones I've made for Vim: min, mindark.
In first weeks I was noticeable more tired. Both writing and reading the code required more effort. This only confirmed that previously I was not in fact reading the code - I read the colors. It took some time to strengthen the "reading muscle" to the point that no amount of code would tire me.
But what's the difference? Why do it?
Every time I would have to read the code anywhere else - then in my editor's theme - I struggled. When colleagues showed me the code in their IDEs I felt handicapped. Switching to this minimalistic highlighting of only comments and strings gave me ability to effortlessly read the code anywhere.
Also my comprehension improved like threefold. Since I started to actually read ALL the code I started to understand it deeper and notice bugs before the code was executed. It also helped with code reviews. I had more valuable feedback than suggesting different variable names as deep reading allowed me to notice real issues and bugs without the need to debug the code.
Diffs and search
The code diffs were one area where lack of simple red/green highlighting was detrimental and had no benefits at all. I just adjusted my themes to include it and I use it like that till today.
I also extensively use and like when the search phrase is highlighted in the editor live as I type it. This helps me identify all the places I'm interested in instantly and especially since all the rest of the code is colorless the search phrase stands out more making it even easier to see. I use it not only to search but also to "read" long words. When I want to make sure that the given text is what I think it is I just type it as a search phrase and see it being highlighted live until I make a mistake or my assumption about the text is wrong. It's like fast typing test in the editor.
No colors
This is an extreme that I didn't anticipated I would ever try. It happen on it's own. I had a random situations where I would work with weird technology or on new setup and highlighting would not work so I had to just work in black and white. But after years with minimalistic coloring of only comments and strings it was equally as easy to have non of it. So I stopped to bother at all with the coloring.
Now I also just prefer plain black and white. Besides the fact that I like the aesthetic It makes it so that you treat comments as equal to the code. Even the minimalistic highlighting of just comments and strings made me lazy to read them - both of them. I was reading the code deeply but I would still just skim the comments and strings. Going with plain black and white on everything not only makes me able to work without any setup anywhere but more importantly everything gets equal amount of attention.
Colors are great...
...but they don't help you read. Have you ever seen a rainbow of colors in a book? I think not!
Go now and read some code.