I’ve tried many syntax coloring schemes and always end up back with (almost) none. I use a vim theme that shows black on white except for grayed out comments.
I’ve turned off most colors in my shell and tmux too. I do have production servers show the command prompt in red, that’s about it.
I don’t know of any way to measure what programmers call “productivity” but subjectively I don’t think syntax coloring does anything for mine. Code usually has enough cues without needing to add color to it.
I cut my programming teeth on dumb terminals like the VT-100, no color, do that may have prepared or biased me early on.
That's very interesting! I just remembered that I instinctively turn on syntax highlighting at every chance that I get. The highlighting pager bat is one of my most frequently used tools. Despite that, my sight never registers the colors as long as they have good contrast. All I see is structure - as if the colors convey meaning the same way as text does. The colors make occassional typos and syntax errors very obvious. One peculiar case is of 'else if' statements. It's alternatively elsif and elif in other languages. I recollect it in most cases based on the color - again almost involuntarily.
The fact that you get all that with plain text and that color is a distraction for you is fascinating. This difference demonstrates how complex and deep human perception is.
Probably more a matter of history and habit than something fundamentally different about perception. I didn't have a terminal or computer that could display colors until I was well into my career, already used to monochrome displays and reading code printed out on paper.
I use linters and static code analyzers extensively, because I don't have an IDE or LSP flagging errors. I tried using VSCode (with and without colors), stuck with it for a while, but it felt slower and buggier than my usual vim + ctags + ripgrep setup.
I get the argument that syntax highlighting can be distracting, but I think the real issue is bad highlighting. Overly bright themes, too many colors, or inconsistent styles can make code harder to read. But when done right—like with semantic highlighting that differentiates mutable vs immutable variables—it can actually enhance understanding rather than clutter the screen. Maybe the problem isn’t highlighting itself, but how it’s typically implemented?
I’ve turned off most colors in my shell and tmux too. I do have production servers show the command prompt in red, that’s about it.
I don’t know of any way to measure what programmers call “productivity” but subjectively I don’t think syntax coloring does anything for mine. Code usually has enough cues without needing to add color to it.
I cut my programming teeth on dumb terminals like the VT-100, no color, do that may have prepared or biased me early on.