Open source · Self-hosted · Source-backed

Understand programming languages by fit, tradeoff, and maintenance reality.

LangIndex is a practical reference for developers choosing, learning, or maintaining languages. It keeps factual claims source-backed and turns comparisons into constraints instead of winner lists.

Browse languagesChoose by problemImprove a page

Start with the question

Browse by practical need

Move from a production constraint to languages, guides, and comparisons that explain the tradeoffs.

Systems and embedded

Memory control, native deployment, interop, and long-term maintenance.

  • Rust
  • C
  • C++
  • Go

Data and automation

Scripting speed, query semantics, statistical tooling, and operational glue.

  • Python
  • SQL
  • R
  • Bash

Language shelf

Featured languages

A short cross-section of the reference. Each profile surfaces the high-value facts first: fit, runtime, typing, memory model, tooling, sources, and last verification date.

Browse all languages

Rust

Rust is a statically typed systems language for software that needs low-level control, predictable performance, and strong compile-time memory and concurrency checks without a required garbage collector.

  • active
  • static
  • systems
  • multi-paradigm
Runtime
native binaries with a small standard runtime; no required garbage collector
Memory
ownership, borrowing, lifetimes, and RAII without a required garbage collector
Tooling
Cargo, crates.io, rustup

Python

Python is a dynamically typed, general-purpose language centered on readability, a large standard library, and a broad package ecosystem for scripting, automation, web services, data work, scientific computing, and machine learning.

  • active
  • dynamic
  • multi-paradigm
  • procedural
Runtime
interpreted bytecode on CPython and other Python implementations
Memory
garbage collected; CPython primarily uses reference counting plus cyclic garbage collection
Tooling
pip, PyPI, venv

TypeScript

TypeScript is a typed superset of JavaScript that adds static analysis and type annotations while compiling to JavaScript for existing runtimes.

  • active
  • static
  • multi-paradigm
  • object-oriented
Runtime
JavaScript runtime
Memory
host runtime managed
Tooling
npm, pnpm, Yarn

Go

Go is a statically typed, compiled language for services, network software, command-line tools, and infrastructure code that benefits from a small language surface, a strong standard toolchain, and built-in concurrency support.

  • active
  • static
  • procedural
  • concurrent
Runtime
native binaries with Go runtime
Memory
garbage collected with explicit pointers and value semantics
Tooling
Go modules

Java

Java is a statically typed, class-based language for the JVM, widely used for backend services, enterprise systems, Android-era application code, and long-lived software that benefits from managed runtime tooling and strong compatibility expectations.

  • active
  • static
  • object-oriented
  • imperative
Runtime
JVM bytecode on Java Virtual Machine implementations
Memory
garbage collected heap with managed object references
Tooling
Maven, Gradle, Maven Central

C

C is a standardized systems programming language for native interfaces, operating-system and embedded work, language runtimes, and portable low-level libraries where explicit memory, layout, and ABI control matter.

  • active
  • static
  • procedural
  • imperative
Runtime
native code through hosted or freestanding implementations with no required garbage collector
Memory
manual memory management with automatic, static, allocated, and implementation-defined storage
Tooling
Conan, vcpkg, pkg-config

Reference paths

Compare, decide, and define terms

Use the supporting collections when the language choice depends on adjacent ecosystems or shared concepts.