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
_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-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"

62 items under this folder.