From Hardware Attributes to the First Coloured Keywords
The precondition for syntax highlighting was hardware that could do more than one thing to a character. Early video terminals displayed a single foreground colour on a fixed background; differentiation, where it existed, meant underlining or reverse video — a white glyph on black swapped to black on white. The IBM 3270 family, designed for mainframe interaction through the 1970s, supported field attributes that could mark portions of a screen as intensified or protected, and programmers quickly repurposed those attributes to make data stand out. That was not syntax highlighting — it was field formatting — but it established the idea that a terminal character could carry semantic meaning through its presentation.
The move to software-controlled colour on personal computers opened new possibilities. A text-mode display adaptor such as the IBM CGA or, more usefully, EGA could address each character cell with an independent colour byte. The question was whether any editor would bother to read the language structure of the source file and colour it accordingly, rather than simply leaving everything the same shade of amber or green.

Borland's Turbo Pascal, arriving in November 1983, brought a full-screen editor to an audience of PC programmers at a price that made it effectively universal in its segment — but its initial editor did not colour tokens. The environment was already radical in speed and integration; colour syntax highlighting was not part of the first proposition. Later versions of the Turbo environment, through the mid-1980s, introduced configurable colour schemes for the editor, and by the time Turbo C appeared in 1987 the practice of making keywords visually distinct was well-established inside the Borland line. The colorised editor in those products helped crystallise what programmers would come to expect.
Resistance and Resolution
Not every developer was persuaded. The objections were earnest: highlighting imposed a visual hierarchy that the compiler did not enforce, it could mislead by colouring a misspelled keyword as though it were an identifier, and it rewarded familiarity with a specific colour scheme rather than genuine understanding of the language. Some programmers trained in UNIX text editors — particularly those who had come through the traditions of vi and Emacs — found the colour an intrusion, an aesthetic judgment the editor had no business making. Emacs had font-lock mode, adding syntax colouring, but the feature was disabled by default in early GNU Emacs releases and had to be explicitly activated; the project's maintainers were in no hurry to make it a priority.
The argument against colour did not survive the arrival of graphical IDEs with high-resolution bitmapped displays. When Delphi shipped in February 1995, its editor offered syntax highlighting in a windowed environment where colour was cheap and readable, and the visual component library was already doing so much to structure code that monochrome editing felt like a relic. Microsoft's Visual Studio, across its various 1990s releases, made coloured keywords a default that no installer turned off. By the late 1990s the debate was effectively closed: syntax highlighting was expected, and an editor that lacked it was considered incomplete.
What the Colour Actually Changed
The Language Server Protocol, published by Microsoft in 2016, represents the mature form of the insight that colourising tokens was only the beginning. LSP-driven semantic highlighting goes beyond lexical token classes — keyword, string, comment — to colour a symbol according to what it actually is in the type system: a local variable, a parameter, a class field. That distinction requires a running language server, not just a regular-expression pass over the source, and it changes the colour of the same word depending on context.
What the first coloured keywords offered, though, was already cognitively significant: a reader scanning code could locate structure at a glance, distinguishing control flow from data and comments from executable text without having to parse each token consciously. The colour arrived later than the editor, later than the compiler, later than the debugger — and it turned out to matter more than its opponents had predicted.
