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 8Read 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)
| # | Language | Note |
|---|---|---|
| 1 | Python | python |
| 2 | JavaScript | javascript |
| 3 | TypeScript | typescript |
| 4 | Java | java |
| 5 | C | c |
| 6 | C++ | cpp |
| 7 | C# | csharp |
| 8 | Go | go |
| 9 | Rust | rust |
| 10 | Swift | swift |
| 11 | Kotlin | kotlin |
| 12 | Ruby | ruby |
| 13 | PHP | php |
| 14 | Scala | scala |
| 15 | Dart | dart |
| 16 | Elixir | elixir |
| 17 | Haskell | haskell |
| 18 | Clojure | clojure |
| 19 | F# | fsharp |
| 20 | Lua | lua |
| 21 | R | r |
| 22 | Julia | julia |
| 23 | Zig | zig |
| 24 | Nim | nim |
| 25 | Crystal | crystal |
| 26 | OCaml | ocaml |
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)
| # | Language | Note |
|---|---|---|
| 27 | Perl | perl |
| 28 | Erlang | erlang |
| 29 | Racket | racket |
| 30 | Common Lisp | common-lisp |
| 31 | Scheme | scheme |
| 32 | Fortran | fortran |
| 33 | COBOL | cobol |
| 34 | Ada | ada |
| 35 | Pascal | pascal |
| 36 | Prolog | prolog |
| 37 | Tcl | tcl |
| 38 | Groovy | groovy |
| 39 | Bash | bash |
| 40 | PowerShell | powershell |
| 41 | SQL (ANSI + dialects) | sql |
| 42 | V | v |
| 43 | Odin | odin |
| 44 | Roc | roc |
| 45 | Gleam | gleam |
| 46 | Pony | pony |
| 47 | Idris | idris |
| 48 | Lean | lean |
| 49 | Coq (Rocq) | coq |
| 50 | Agda | agda |
| 51 | Smalltalk | smalltalk |
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.
| Note | What it covers |
|---|---|
| _compare_memory_models | Manual / RAII / ownership / refcaps / RC / hybrid / tracing GC / image-based, with all 51 langs placed |
| _compare_type_systems | Dynamic ↔ gradual ↔ static (nominal/structural/HM/typeclass/refinement/linear/dependent/set-theoretic) |
| _compare_concurrency | Threads+locks / async+event-loop / M:N green threads / actors / CSP / STM / coroutines / data parallel |
| _compare_metaprogramming | Macros (hygienic / proc / non-hyg) / comptime / templates / decorators / reflection / source generators / image-based |
| _compare_build_tools | Version mgr / pkg mgr / build / test / lint / format stack per language; what good unification looks like |
| _learn_next | Recommendation 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 8The 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.
| Family | Note | Approx count |
|---|---|---|
| Lisps (extended) | lisps | ~30 |
| ML & extended FP | ml-and-fp | ~22 |
| BASICs, Smalltalk variants & teaching | basics-and-teaching | ~44 |
| Mainframe & legacy enterprise | mainframe-legacy | ~24 |
| Hardware Description Languages | hdl | ~17 |
| GPU & shader languages | gpu-and-shaders | ~18 |
| Scientific & numerical | scientific | ~27 |
| Configuration / IaC / Build DSL | config-and-dsl | ~25 |
| Query languages | query | ~22 |
| Esoteric languages | esoteric | ~22 |
| Forth & concatenative | forth-and-concatenative | ~18 |
| Logic & constraint programming | logic-and-constraint | ~17 |
| Experimental & cross-host | experimental-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: 51 • Family-index catalogs: 85 covering ~2,160 distinct languages • Cross-cutting comparison notes: 6 • Vault 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:
| # | Language | Note | Why it matters |
|---|---|---|---|
| 52 | MATLAB | matlab | Dominant in aerospace/automotive/biotech model-based dev; Simulink + 100+ toolboxes; per-seat proprietary license |
| 53 | Mojo | mojo | Lattner’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-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)
| # | Family | Note | Languages |
|---|---|---|---|
| 25 | Graph / log / event / observability query | graph-log-event-query | ~26 |
| 26 | Bioinformatics & scientific workflow | bio-workflow | ~22 |
| 27 | HTTP / API / schema description | api-description | ~28 |
| 28 | Stream-processing DSLs | stream-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)
| # | Family | Note | Languages |
|---|---|---|---|
| 21 | Robotics / industrial control | robotics-control | ~20 |
| 22 | Document / typesetting | document-typesetting | ~25 |
| 23 | Smart-contract DSLs | smart-contract | ~26 |
| 24 | Build-time / DevOps DSLs | build-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)
| # | Family | Note | Languages |
|---|---|---|---|
| 14 | Game scripting | game-scripting | ~15 |
| 15 | Embedded / firmware | embedded-firmware | ~17 |
| 16 | Spreadsheet languages | spreadsheet | ~18 |
| 17 | AI / agent / prompt languages | ai-prompt-languages | ~18 |
| 18 | Notation / specification / verification | notation-spec | ~19 |
| 19 | Music / audio synthesis | music-audio | ~18 |
| 20 | Visual / dataflow | visual-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"