Languages — Master Index

Languages — Master Index

A shared, agent-readable reference library for programming languages. Every language note follows the same schema (see _schema) so you can predict where to find what. Citations point to the official sources used at write time — verify before acting on anything time-sensitive.

How agents use this

Search by concept (preferred — hybrid finds what keyword-only misses):

node ~/.claude/bin/obsidian-research.mjs query "rust lifetimes" --hybrid --k 8
node ~/.claude/bin/obsidian-research.mjs query "metaprogramming macros" --hybrid --k 8

Read a specific language end-to-end:

node ~/.claude/bin/obsidian-research.mjs read --path "Languages/rust.md"

List everything in this folder:

node ~/.claude/bin/obsidian-research.mjs list --path "Languages"

Schema

Every language note has these sections in this order: At a glance → Getting started → Basics → Intermediate → Advanced → God mode → Idioms & style → Ecosystem → Gotchas → Citations. See _schema for what goes in each.

Coverage status

See _roadmap for the complete picture of selected vs deferred scope.

Tier 1 — Top 25 (selected, written from web sources with citations)

#LanguageNote
1Pythonpython
2JavaScriptjavascript
3TypeScripttypescript
4Javajava
5Cc
6C++cpp
7C#csharp
8Gogo
9Rustrust
10Swiftswift
11Kotlinkotlin
12Rubyruby
13PHPphp
14Scalascala
15Dartdart
16Elixirelixir
17Haskellhaskell
18Clojureclojure
19F#fsharp
20Lualua
21Rr
22Juliajulia
23Zigzig
24Nimnim
25Crystalcrystal
26OCamlocaml

Tier 2 — Deferred (next batch)

Perl, Erlang, Racket, Common Lisp, Scheme, Fortran, COBOL, Ada, Pascal, Prolog, Tcl, Groovy, Bash, PowerShell, SQL dialects, V, Odin, Roc, Gleam, Pony, Idris, Lean, Coq, Agda, Smalltalk.

Tier 3 — Deferred (encyclopedic, index-only)

200+ languages with significant usage on GitHub/PyPI/etc. Would be a thin shim per language with syntax sample + links.

Cross-cutting topic notes (future)

These will live as their own notes and link from each relevant language:

  • Memory models comparison
  • Type system spectrum (dynamic → gradual → static → dependent)
  • Concurrency model spectrum (threads → actors → CSP → async/await → STM)
  • Build/package manager comparison
  • Macro / metaprogramming comparison

Update — 2026-05-07T00:20:17.823Z (claude-code)

Tier 2 — COMPLETE (2026-05-07)

#LanguageNote
27Perlperl
28Erlangerlang
29Racketracket
30Common Lispcommon-lisp
31Schemescheme
32Fortranfortran
33COBOLcobol
34Adaada
35Pascalpascal
36Prologprolog
37Tcltcl
38Groovygroovy
39Bashbash
40PowerShellpowershell
41SQL (ANSI + dialects)sql
42Vv
43Odinodin
44Rocroc
45Gleamgleam
46Ponypony
47Idrisidris
48Leanlean
49Coq (Rocq)coq
50Agdaagda
51Smalltalksmalltalk

Library now totals 51 languages. Tier 3 (encyclopedic 200+ index) and cross-cutting comparison notes still deferred — see _roadmap.

Update — 2026-05-07T11:29:49.918Z (claude-code)

Cross-cutting comparison notes — COMPLETE (2026-05-07)

These six notes are the SYNTHESIS layer — patterns and trade-offs that span all 51 per-language notes.

NoteWhat it covers
_compare_memory_modelsManual / RAII / ownership / refcaps / RC / hybrid / tracing GC / image-based, with all 51 langs placed
_compare_type_systemsDynamic ↔ gradual ↔ static (nominal/structural/HM/typeclass/refinement/linear/dependent/set-theoretic)
_compare_concurrencyThreads+locks / async+event-loop / M:N green threads / actors / CSP / STM / coroutines / data parallel
_compare_metaprogrammingMacros (hygienic / proc / non-hyg) / comptime / templates / decorators / reflection / source generators / image-based
_compare_build_toolsVersion mgr / pkg mgr / build / test / lint / format stack per language; what good unification looks like
_compare_error-handlingExceptions / Result / Optional / effects / panic-supervisor / conditions — every error-handling family across all 53 langs
_compare_async-modelsThreads / green threads / async-await / actors / CSP / STM / reactive / virtual threads — every concurrency primitive
_compare_orm-and-data-accessRaw drivers / query builders / ORMs / document KV / graph / CDC + ETL / migrations — every data-access stack
_compare_test-frameworksUnit / property+fuzz / integration+e2e / mock / factory / snapshot / mutation / benchmark / coverage / CI — every testing layer
_learn_nextRecommendation graph: “if you know X, learn Y to gain Z” — for each of the 51 source languages

How to query the cross-cutting layer

node ~/.claude/bin/obsidian-research.mjs read --path "Languages/_compare_memory_models.md"
node ~/.claude/bin/obsidian-research.mjs query "ownership vs garbage collection trade-off" --hybrid --k 8
node ~/.claude/bin/obsidian-research.mjs query "what should I learn after Rust" --hybrid --k 8

The cross-cutting notes link aggressively to the per-language notes via [[Languages/<slug>]] wiki links — Obsidian will surface back-references automatically.

Update — 2026-05-07T12:09:36.359Z (claude-code)

Tier 3 — Encyclopedic family layer COMPLETE (2026-05-07)

13 family-grouped index notes in _index cataloguing ~310 languages NOT in the deep library. Each family note: family overview → cross-links to deep notes → big tabular catalog → notable threads → citations.

FamilyNoteApprox count
Lisps (extended)lisps~30
ML & extended FPml-and-fp~22
BASICs, Smalltalk variants & teachingbasics-and-teaching~44
Mainframe & legacy enterprisemainframe-legacy~24
Hardware Description Languageshdl~17
GPU & shader languagesgpu-and-shaders~18
Scientific & numericalscientific~27
Configuration / IaC / Build DSLconfig-and-dsl~25
Query languagesquery~22
Esoteric languagesesoteric~22
Forth & concatenativeforth-and-concatenative~18
Logic & constraint programminglogic-and-constraint~17
Experimental & cross-hostexperimental-and-cross-host~28

Library final shape

Languages/
├── _index.md                       (this file)
├── _schema.md                      (per-note schema)
├── _roadmap.md                     (coverage roadmap & status)
├── _compare_memory_models.md       (cross-cutting)
├── _compare_type_systems.md        (cross-cutting)
├── _compare_concurrency.md         (cross-cutting)
├── _compare_metaprogramming.md     (cross-cutting)
├── _compare_build_tools.md         (cross-cutting)
├── _learn_next.md                  (cross-cutting recommendation graph)
├── <51 deep per-language notes>    (Tier 1 + Tier 2)
└── Tier3/
    ├── _index.md                   (family index)
    └── <13 family-grouped catalogs>

Total files: 146 (60 root incl. 9 meta + 86 Tier-3) • Languages with deep notes: 51Family-index catalogs: 85 covering ~2,160 distinct languagesCross-cutting comparison notes: 6Vault chunks indexed for semantic search: re-run obsidian-research.mjs index after edits

Update — 2026-05-23 (deep notes added: MATLAB + Mojo)

Two languages flagged by the 2026-05-23 Languages audit as “catalog-only despite being major production languages” now have full Tier-1 deep notes:

#LanguageNoteWhy it matters
52MATLABmatlabDominant in aerospace/automotive/biotech model-based dev; Simulink + 100+ toolboxes; per-seat proprietary license
53MojomojoLattner’s Python-syntax / MLIR-systems language for AI kernels; open-sourced 2025-05; powers Modular’s MAX inference engine

Library now totals 53 deep per-language notes (was 51) + 6 cross-cutting comparisons + 85 Tier-3 family catalogs.

Update — 2026-05-30 (deep notes added: D + Solidity + Elm + GDScript)

Four languages previously catalog-only (in Tier-3 family indexes) now have full deep per-language notes:

#LanguageNoteWhy it matters
54DdSystems language with C++ power, GC-optional, compile-time function execution and templates; betterC subset
55SoliditysolidityDominant EVM smart-contract language; statically typed, contract-oriented; promoted from the smart-contract Tier-3 catalog
56ElmelmPure-functional front-end language with no runtime exceptions; the Elm Architecture (TEA) that inspired Redux
57GDScriptgdscriptGodot engine’s Python-like gameplay scripting language; promoted from the game-scripting Tier-3 catalog

Library now totals 57 deep per-language notes (was 53) + 6 cross-cutting comparisons + 85 Tier-3 family catalogs.

Update — 2026-05-31 (deep notes added: Verilog + SystemVerilog + VHDL)

The three IEEE-standard hardware description languages — previously catalog-only in the HDL Tier-3 family index — now have full deep per-language notes. See hdl.

#LanguageNoteWhy it matters
58VerilogverilogThe lingua franca of RTL digital design (IEEE 1364); foundation of every ASIC/FPGA flow; now a subset of SystemVerilog
59SystemVerilogsystemverilogDominant verification standard (IEEE 1800); adds OOP, constrained-random, assertions, coverage — UVM testbenches live here
60VHDLvhdlStrongly typed Ada-flavoured HDL (IEEE 1076); DoD-pushed; entrenched in aerospace/defense and EU FPGA shops

Library now totals 60 deep per-language notes (was 57) + 6 cross-cutting comparisons + 85 Tier-3 family catalogs.

Update — 2026-05-31 (deep notes added: Chisel + SystemC)

Two more hardware-design languages from the HDL Tier-3 family index promoted to deep notes alongside the electronics fill-in program. See hdl.

#LanguageNoteWhy it matters
61ChiselchiselScala-embedded hardware-construction DSL (UCB); elaborates to Verilog via FIRRTL; powers SiFive RISC-V cores + Chipyard
62SystemCsystemcC++ library (IEEE 1666) for system-level modeling, TLM-2.0 virtual platforms, and high-level synthesis to RTL

Library now totals 62 deep per-language notes (was 60) + 9 cross-cutting comparisons + 85 Tier-3 family catalogs.

Update — 2026-05-23 (post-audit refresh)

Audit confirmed prior expansion passes were under-counted in this header. Reality per d:\Vault\Compendium\System\audits\2026-05-23-languages-audit.md: 146 total files, 85 family-index catalogs (not 28), ~2,160 catalogued languages (not 640). The Tier-3 _index.md had the correct number; this header was stale by ~14 passes.

New Tier 3 family notes (third pass)

#FamilyNoteLanguages
25Graph / log / event / observability querygraph-log-event-query~26
26Bioinformatics & scientific workflowbio-workflow~22
27HTTP / API / schema descriptionapi-description~28
28Stream-processing DSLsstream-processing~22

Update — 2026-05-09 (second expansion pass)

Added 4 more Tier 3 family-index notes. Library now totals 85 files with 24 family indexes (was 20) and ~545 catalogued languages (was ~440).

New Tier 3 family notes (2026-05-09)

#FamilyNoteLanguages
21Robotics / industrial controlrobotics-control~20
22Document / typesettingdocument-typesetting~25
23Smart-contract DSLssmart-contract~26
24Build-time / DevOps DSLsbuild-devops~32

Update — 2026-05-07 (expansion pass)

Added 7 more Tier 3 family-index notes plus 4 maintenance fixes. Library now totals 81 files with 20 family indexes (was 13) and ~440 catalogued languages (was ~310).

New Tier 3 family notes (2026-05-07)

#FamilyNoteLanguages
14Game scriptinggame-scripting~15
15Embedded / firmwareembedded-firmware~17
16Spreadsheet languagesspreadsheet~18
17AI / agent / prompt languagesai-prompt-languages~18
18Notation / specification / verificationnotation-spec~19
19Music / audio synthesismusic-audio~18
20Visual / dataflowvisual-dataflow~22

Maintenance fixes (2026-05-07)

  • PHP 8.5 release date pinned to 2025-11-20 (was vague “2025-11”); cite https://www.php.net/releases/8.5/en.php
  • Ruby 4.0.3 confirmed correct (released 2026-04-21 per ruby-lang.org news)
  • Coq → Rocq rename dates corrected: announced 2023-10-11, officially completed with Rocq 9.0.0 release on 2025-03-12 (the prior “2025-05-14” was incorrect)
  • Tcl 9.0 breaking changes verified — already documented in deep tcl note Gotchas section (4 specific items: namespace var lookup, tilde expansion, fatal I/O encoding, tcl_precision)

How any agent in any project uses the library

# Find by concept (best for "what language has X feature")
node ~/.claude/bin/obsidian-research.mjs query "ownership borrow checker" --hybrid --k 8
 
# Read a specific deep note
node ~/.claude/bin/obsidian-research.mjs read --path "Languages/rust.md"
 
# Read a family catalog
node ~/.claude/bin/obsidian-research.mjs read --path "Languages/Tier3/scientific.md"
 
# Read a cross-cutting comparison
node ~/.claude/bin/obsidian-research.mjs read --path "Languages/_compare_memory_models.md"
 
# Find learn-next recommendations
node ~/.claude/bin/obsidian-research.mjs read --path "Languages/_learn_next.md"
 
# Discover the catalog
node ~/.claude/bin/obsidian-research.mjs list --path "Languages"
node ~/.claude/bin/obsidian-research.mjs list --path "Languages/Tier3"

75 items under this folder.