To the brain, reading computer code is not the same as reading language (2020)
New research from MIT using fMRI suggests that reading computer code activates the brain’s “multiple-demand” network used for problem-solving, rather than the regions specialized for natural language. Commenters debate whether programming languages should really be considered “languages” at all, comparing code comprehension to math, diagrams, legal texts, and even music, and sharing how code feels more like simulating mechanisms than following prose. Others question the limits of fMRI-based claims and suggest follow-up work on expert programmers, different paradigms (e.g., visual or functional programming), and highly formal natural language like contracts.
Programming languages vs. natural language
- Ongoing debate over whether “language” is a misnomer for programming languages; some see them more as specifications/notations than true languages.
- Others argue programming languages fit standard definitions of language: structured grammar, vocabulary, and use for communication (with humans and machines).
- Several note that many linguistic formalisms (e.g., formal grammars) came from attempts to model natural language and were later applied to PLs.
- Visual programming and CAD/floor plans are discussed as “borderline” cases: they communicate with rules and symbols but aren’t usually labeled languages.
How reading code feels
- Many compare reading code to doing math, solving puzzles, or inspecting a mechanical system (e.g., meshed gears), not to reading prose.
- People report different modes:
- “Story mode”: skimming for gist and intent.
- “Execution mode”: mentally simulating control flow and state.
- “Structural mode”: scanning vertically like an AST or diagram.
- Several say reading unfamiliar code is cognitively heavy because it requires holding many interacting pieces in working memory; interruptions are especially costly.
Code as communication and organization
- Some emphasize that good programmers write primarily for human readers; poor naming and lack of documentation make later understanding painful.
- Others prioritize “coding zone” speed and postpone communication/documentation to specific phases.
- Literate programming resurfaces as a theme: ordering code as a narrative (top‑down, explanations first, definitions later), potentially combined with modern tools and LLMs.
Interpretation of the neuroscience results
- Many find it intuitive that code does not engage classic language regions; it feels more like math/logic, spatial reasoning, or planning.
- Some wonder how results change with:
- Very experienced programmers.
- Familiar vs. unfamiliar codebases.
- Different paradigms (functional vs. OO, visual vs. textual).
- Highly formal legal/contract text, which may resemble code.
Skepticism and limitations
- Concerns raised about fMRI in general: need for proper calibration, multiple-comparisons correction, and replication.
- Some question the study’s task design (predicting code output) as only one aspect of “understanding code.”
- Comparisons to language may be confounded by participants having decades of natural-language experience but relatively little programming experience.