top | item 46499674

I program without syntax highlighting

45 points| weeber | 2 months ago |hakon.gylterud.net | reply

65 comments

order
[+] chrisvenum|2 months ago|reply
As a dyslexic programmer, I often think about how I would never be able to do the job I do without syntax highlighting.

I don’t really know why it works so well for me, but I think it helps me skim and pattern match syntax much more easily without spending too much time reading every single word, which is exhausting for me.

Types and autocompletion in an IDE also help me massively reduce issues with spelling and ultimately free up my brain to think about the logic rather than stressing out about every single thing I type.

Really cool that some people don’t need it, but for me, I am grateful to those who have spent the time on great themes. Solarized Dark is a favourite of mine.

[+] gylterud|2 months ago|reply
I had not thought about this perspective (I wrote this essay many eons ago). But now I have a good colleague who is dyslexic, and he said the same thing. He says, for him, the colours carry more meaning than the characters often.
[+] alfiedotwtf|2 months ago|reply
See my other comment in this post. The reason I started thinking about creating a theme was because colour themes can sometimes saturate the ADHD brain, and so I’m going to try and dial back the colour to reduce the noise.

Hopefully when I’m done, you can take a peek to see if can help with your dyslexia

[+] quadrium|2 months ago|reply
Most syntax highlighting adds too many color variations.

In light modes, I find that variations gray and bolding certain symbols, variable names, function names in definitions and method calls to be enough.

Just enough hint so the brain can skim for the matching information. My editor highlights the opening and closing brackets of my current block,but indent level indicators are usually enough for me to visually validate.

Dark modes make contrast more difficult to discern though.

[+] louthy|2 months ago|reply
> Most syntax highlighting adds too many color variations.

Different strokes, for different folks. I personally use Monokai where each token type has and ‘extreme’ colour (like full red, full green, full yellow, etc.) — I absolutely love it and, for me, makes code much easier to parse

[+] reactordev|2 months ago|reply
And then there's Rainbow Brackets...
[+] monokai_nl|2 months ago|reply
I program with syntax highlighting.

I'm not convinced by the arguments of the article:

- actively clicking on matching parentheses has the benefit of selecting that part

- being more sensitive to the "beauty" of the code

I think syntax highlighting doesn't get in the way of these two points.

The only valid point:

- No syntax highlighting automatically supports all languages

True I guess. In the sense that no shoes support all feet.

[+] reactordev|2 months ago|reply
"acively clicking" this is where it fails for me. In vim, there is no mouse, there is only zuul.

I get that he sees words and numbers colored but the rest of us like the quick visual context it gives when trying to quickly find things in large files. So I'm with you, :syntax on

[+] chaps|2 months ago|reply
"The only valid point:"

This is a post about preferences. Why do you think your preferences are "more valid" than theirs?

[+] mrgoldenbrown|2 months ago|reply
No compliler automatically supports all languages so I do all my programming with a magnetized needle and a steady hand.
[+] black_knight|2 months ago|reply
I think we should have more semantic highlighting. Like giving every variable a unique color. Or color them by type!
[+] lloydatkinson|2 months ago|reply
“no syntax highlighting supports all languages, therefore I don’t use any syntax highlighting” is not even a logical argument.
[+] publicdebates|2 months ago|reply
As usual, I read the code sample before reading the article:

    for (i=0;i<3;++i) {
      /* Do initialisation here!
      niftyConfig = 1;
      funkyValue = 2;
    }
There's no way it's mentally just as easy for me to find that error without syntax highlighting.

It may be just slightly more difficult, but then it's death by a thousand paper cuts if I'm reading code for 6-12 hours a day.

[+] Miraltar|2 months ago|reply
I think it's fine when you're just working on your own but if you have to review code or work in a codebase you don't own that's much more effort.
[+] JohnFen|2 months ago|reply
I personally find syntax highlighting unhelpful and very distracting, so I always turn it off. Sometimes it feels that I'm the only one. I'm pleased to read that I'm not.
[+] pmontra|2 months ago|reply
> Supporting all languages equally future-proves the editor, because who knows which language we will use in ten years?

I remember which editors I used in 1990: emacs for most of my code and vi (vim now) for light editing mostly on remote machines. They are the same editors I'm using today. I went through some IDEs (Eclipse, NetBeans) because Java would have been nearly impossible otherwise but I never left those two editors for everything else.

They did not have syntax coloring in the 90s, they do now. It's not life changing but proper syntax coloring can make me spot an undefined variable or an unterminated string. I'm working only with interpreted and dynamic typed languages now so that's almost all it can be done without a compiler that runs in the background and checks the code for errors.

I don't use anymore any of the languages I programmed with 35 years ago.

[+] zenethian|2 months ago|reply
We definitely had syntax highlighting in the 90s. I distinctly remember Turbo Pascal supporting it as early as 1992.
[+] caerwy|2 months ago|reply
More generally the tools used to write the code show through in the code itself. In the way code is distributed across files, in the length and style of names, in the organization of modules. Using an editor without syntax highlighting like Acme, and also because it's Acme will encourage a different style of organizing a project and the code within a file.
[+] cogman10|2 months ago|reply
I think language matters quite a bit when it comes to how useful this is.

For simpler syntaxes like C or Java, I think the highlighting adds little. But as a language allows for more complex things like monkey patching or helper methods and the like, a little bit of color is really helpful. Knowing immediately that a method is built into the SDK or that it's some monkey patch that's been added gives me better understanding on what the code is doing.

That said, "go to definition" and "autocomplete" are the most important tools to me when it comes to coding.

[+] LatencyKills|2 months ago|reply
I was an engineer on the Visual Studio team when we first introduced syntax highlighting and code completion. The rollout triggered quite a bit of internal controversy. A sizable group of developers strongly opposed these features—syntax coloring, parameter completion, signature validation—arguing that “real programmers write their code unaided.”

I can’t help but wonder how those same engineers are adapting to the current wave of AI-powered development tools like Claude Code and Cursor.

[+] steeleduncan|2 months ago|reply
I believe Rob Pike also doesn't use syntax highlighting [1]

[1] https://groups.google.com/g/golang-nuts/c/hJHCAaiL0so/m/kG3B...

[+] conartist6|2 months ago|reply
I think Torvalds also goes on that list as another ACME user. He mentioned as much in the extended video interview he did with Microsoft recently.

For myself, I've had to spend a lot of time without colorful syntax recently as I was working on building my own IDE and my own syntaxes and even my own system of syntax highlighting. It would have been a distraction to be constantly fighting with someone else's system of syntax highlighting while building my own! But also even having learned that I can live without it I'm hardly ready to say that I never want it back. I just want it back better. I want dynamic, contextual highlighting and I want interactive access to the underlying tree model. I want it to feel really easy to tinker with too.

[+] sebtron|2 months ago|reply
On my personal devices, I turned off syntax highlighting a few years ago to see how hard it would be to live without, but I ended up liking it and I have not turned it back on since. I am mostly working on small (<10k LOC) projects, or single-file programs (e.g. Advent of Code).

However, at work I am working on a much larger code base, and the extra help given by syntax highlighting (for example, having a quick visual feedback on whether a method exists or not) is valuable to me.

I think this also depends on the language used: at home I mostly program in C, but if I were doing more e.g. C++, I would probably enjoy some syntax highlighting.

[+] jccc|2 months ago|reply
I’ve tried in the past to explain/promote/defend my syntax-coloring-free serenity, but I wish I’d thought of this:

> Syntax is not the most challenging part of programming.

It seems like unless you’re learning the language it’s mainly a distraction.

[+] tekne|2 months ago|reply
Idk - I really think this is a different brain thing.

I have synesthesia and so get syntax highlighting for free.

I like my highlighting to give me "synesthesia bootstrap speedup"; on the contrary it annoys me when it clashes.

It's an extreme case, but I presume as with most things there's a spectrum

[+] arnsholt|2 months ago|reply
For about two and a half years I worked on a Smalltalk system, written in a quite old Smalltalk, which gave me two idiosyncrasies editor-wise: I no longer care very much about syntax highlighting (though I don't really bother to turn it off), and I now prefer to use proportional fonts for my programming. The only syntax highlighting I missed in the Smalltalk was a fading out of comments (which would in fact have prevented a stupid issue similar to the comment thing shown in the OP).
[+] tqwhite|2 months ago|reply
I eat all my food without knife and fork. I find I am able to see the beauty in a pork chop when I cut it with a spoon and am able to appreciate its qualities better. Too tough and the cutting fails. I know then to rid myself of an ugly thing and buy another. Just right and I can scoop up a piece as soon as I get it to the right shape.
[+] pshirshov|2 months ago|reply
> Once syntax highlighting is gone, you no longer priviledge the class of languages for which there exists a syntax highlighting.

Language models made syntax highlighting extremely cheap to make.

[+] esafak|2 months ago|reply
What do you mean? LLMs are expensive.
[+] itmitica|2 months ago|reply
Syntax highlighting gains, regardless of color scheme, are not negligible. There are grayscale color schemes, for example, that remove the violent nature of some color themes.
[+] worksonmine|2 months ago|reply
I use a custom grayscale theme in Neovim with 3 light and 3 dark colors. Comments are darkest, language syntax like keywords and brackets are normal, and assigned values bright. This helps me focus on what's important and ignore the boilerplate around. Everything is still readable but I can parse the code by just taking a glance at the relevant stuff.
[+] nusl|2 months ago|reply
Syntax highlighting makes quite a large difference for me with regards to identifying things without having to look for it for too long, but I do sometimes miss detail. When I used to use plain vim it worked fine but it was harder to visually parse quickly.
[+] alfiedotwtf|2 months ago|reply
I’m right in the middle of creating my own theme… my motivation is “colour is signal” and so it has the aim of having important things grab your attention vs boring things you’re safe to ignore.

… coding without syntax highlighting deprives you of signal!

[+] willvarfar|2 months ago|reply
I remember when syntax highlighting was introduced in Borland's Turbo Pascal editor (on DOS). It was a very major usability improvement and put TP's IDE at the forefront of getting things done. Fond memories :)
[+] krautburglar|2 months ago|reply
The nice thing about syntax highlighting is that it acts as a lightweight validator. I know I have a syntax error as soon as the colors go crazy in vim, and I can find it where the colors break.
[+] readthenotes1|2 months ago|reply
I myself prefer to eschew the affordances of IDEs and have even kicked my addiction to compilers/linkers.

Hand-crafted artisinal 1 and 0s is the best, most productive, way to code.

/S Obviously?