Syntax highlighting is a waste of an information channel (2020)

Rainbow parentheses and accessibility

  • Many commenters like rainbow parentheses for quickly matching scopes and spotting bracket errors; several editors (VS Code, calculators, spreadsheets) already support them or variants.
  • Others find them noisy “color soup,” especially in complex expressions, and prefer structural aids like indentation, vertical guides, or on-cursor matching only.
  • Color-blind users report mixed experiences: some find alternation in brightness helps; others say any multicolor text is fatiguing and distracting.
  • Consensus: if used, colors must be configurable, with color‑blind‑friendly palettes and the ability to turn the feature off.

Existing capabilities vs. “wasted channel”

  • Many argue the premise is dated: modern IDEs already use color and decorations for:
    • Errors, dead code, unreachable code, and unused variables (often grayed).
    • Symbol usages, imports vs local identifiers, mutable vs immutable, test failures, debugger state.
    • Semantic highlighting via parsers/tree-sitter or language servers.
  • Some say the article’s examples resemble existing features in JetBrains tools, VS Code, Emacs, etc., often implemented with ASTs or tree-sitter.

Beyond basic syntax highlighting

  • Commenters propose richer or alternative visual channels:
    • Color layers/modes you can toggle for tasks (flow, scope, imports, arguments, test coverage).
    • Highlighting business logic vs error handling vs I/O, or dataflow from a selected variable (e.g., Flowistry for Rust).
    • Structural cues via font size, weight, families, background shading, and zebra coloring of blocks.
  • There’s interest in context-dependent highlighting triggered by selection or cursor position rather than always-on color noise.

Readability, redundancy, and code quality

  • Some see extra color as essential redundancy that aids pattern recognition and error detection; syntax coloring reassures them the parser agrees with their mental model.
  • Others dislike heavy coloring entirely, preferring minimal schemes and good formatting; they worry rich visual aids encourage terser, less readable code that’s harder to work with outside a tuned IDE.
  • Several stress that color should complement, not replace, information encoded in naming, structure, and text itself.

Structured representations and future directions

  • Discussion touches on structured code representations (tree-sitter, CSTML/BABLR, JetBrains semi‑ASTs, Source Insight) as foundations for semantic highlighting and complex visualizations.
  • Some are exploring AI-powered “semantic highlighting” to surface context like reachability or business logic, though others doubt current AI can offer formally reliable analyses.