> For the complete documentation index, see [llms.txt](https://isubasinghe.gitbook.io/isithas-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://isubasinghe.gitbook.io/isithas-wiki/software_engineering/languages.md).

# languages

## Basic idea

Notations for instructing computers. Axes that matter: paradigm (imperative / functional / logic), type discipline (static / dynamic / weak / strong), memory model (manual / GC / ownership), and execution (compiled / interpreted / JIT).

## Key facts

* Manual memory: C, C++; GC: Java, Go, Haskell, JS; ownership: Rust.
* Dynamic typing: Python, JS, Lua, Erlang; static: C, Rust, Haskell, Go, Java.
* Compiled: C/C++/Rust/Go/Haskell; JIT: Java/JS/Lua(LuaJIT); interpreted: Racket.
