A personal cheatsheet for compiled and interpreted programming languages I have encountered, but haven't necessarily used. The purpose of this list is to compare development environments, toolchain and ecosystems across different languages, specifically gauging how complex they are to configure and how quickly a developer can get them set up and running, start developing and execute or compile a program on a fresh machine (Microsoft Windows prioritized).
v1.202605.2
| Language | Assemblers, Linkers, Compilers, Interpreters, Loaders | Package Managers | Dependency Managers | Build Tools | Run Commands | Internal Runtime | External Runtime Required | Toolchain Setup Friction |
|---|---|---|---|---|---|---|---|---|
| ActionScript | mxmlc, adl, compc |
apm |
- | ant, maven |
mxmlc Main.as |
Adobe Flash Player, Adobe AIR |
Adobe Flash Player or Ruffle Flash Emulator, Adobe AIR |
Multimedia / Legacy |
| - | - | - | - | - | adl Main-app.xml |
- | - | - |
| Assembly (x64) | nasm, yasm, ld |
- | - | make, cmake |
nasm -f elf64 hello.asm && ld hello.o && ./a.out |
Amd64, Operating System Kernel |
Microsoft Visual C++ Redistributable |
Technical / Manual |
| Bash | bash, sh |
brew, apt, pacman |
- | make |
bash hello.sh |
Bash |
Git Bash, Linux |
Native / Ubiquitous |
| - | - | - | - | - | ./hello.sh |
- | - | - |
| BASIC | fbc |
- | - | make |
fbc hello.bas && ./hello |
Common Language Runtime |
Microsoft Visual C++ Redistributable |
Minimalist / Retro |
| - | - | - | - | - | fbc -run hello.bas |
- | - | - |
| Batch | cmd |
- | - | - | hello.bat |
Microsoft Windows Command Prompt |
- | Native / Legacy |
| - | - | - | - | - | cmd /c hello.bat |
- | - | - |
| C | gcc, clang |
vcpkg, conan |
- | make, cmake, ninja, meson, autoconf |
gcc hello.c -o hello && ./hello |
C Runtime Library |
Microsoft Visual C++ Redistributable |
Industrial / Heavy |
| - | - | - | - | - | make run |
- | - | - |
| C# | dotnet, csc |
nuget |
- | msbuild, dotnet build |
dotnet run |
Common Language Runtime |
Microsoft .NET |
Multi-GB / Bloated |
| - | - | - | - | - | csc Hello.cs && ./Hello.exe |
- | - | - |
| C++ | g++, clang++ |
vcpkg, conan |
- | cmake, ninja, make, meson, bazel |
g++ hello.cpp -o hello && ./hello |
C++ Runtime Library |
Microsoft Visual C++ Redistributable |
Complex / Fragmented |
| - | - | - | - | - | cmake --build . && ./hello |
- | - | - |
| C3 | c3c |
- | c3c |
c3c |
c3c compile-run main.c3 |
Common Language Runtime |
- | Smooth / Single-binary |
| Carbon | carbon |
- | bazel |
bazel |
carbon run hello.carbon |
Low Level Virtual Machine, C++ Runtime Library |
- | Experimental / Google-centric |
| - | - | - | - | - | bazel run //:hello |
- | - | - |
| - | - | - | - | - | carbon run hello.carbon |
- | - | - |
| Dart | dart, dart2js, dart compile |
pub |
pub |
dart, flutter |
dart run |
Dart Virtual Runtime |
Dart SDK |
Low |
| - | - | - | - | - | dart test |
- | - | - |
| Go | go |
- | go mod |
go build, make, mage |
go run hello.go |
Go Runtime |
- | Professional / Polished |
| - | - | - | - | - | go build hello.go && ./hello |
- | - | - |
| Jai | jai |
- | jai |
jai |
jai main.jai |
- | - | Exclusive |
| Java | java, javac, kotlinc |
- | maven, gradle |
maven, gradle, ant, bazel |
java Hello.java |
Java Virtual Machine, Java Runtime Environment |
Java Development Kit , Java Runtime Environment |
Modular / Enterprise |
| - | - | - | - | - | mvn exec:java |
- | - | - |
| - | - | - | - | - | gradle run |
- | - | - |
| JavaScript | node, bun, deno |
npm, pnpm, yarn, bun |
npm, pnpm, yarn, bun |
vite, tsdown, esbuild, webpack, rollup |
node hello.js |
Browser JavaScript Engine |
JavaScript Engine (node, deno, bun) |
Instant / Quick setup |
| - | - | - | - | - | npm start |
- | - | - |
| - | - | - | - | - | bun run hello.js |
- | - | - |
| Kotlin | java, javac, kotlinc |
- | maven, gradle |
maven, gradle, ant, bazel |
kotlinc hello.kt -include-runtime -d hello.jar && java -jar hello.jar |
Java Virtual Machine, Java Runtime Environment |
Java Development Kit , Java Runtime Environment |
Refined / Modern |
| Lua | lua, luajit |
luarocks |
- | make |
lua hello.lua |
Lua Interpreter, Lua Virtual Machine |
Microsoft Visual C++ Redistributable |
Portable / Ultra-light |
| - | - | - | - | - | luajit hello.lua |
- | - | - |
| Luau | luau |
wally, pesde |
- | rojo, darklua |
luau hello.lua |
Luau Interpreter, Luau Virtual Machine |
Roblox Player, Roblox Studio |
Safety-first / Game-centric |
| - | - | - | - | - | lune run hello.luau |
- | - | - |
| Odin | odin |
- | odin |
odin, make |
odin run . |
- | Microsoft Visual C++ Redistibutable, Microsoft Desktop Development Kit |
Artistic / Game-dev focus |
| - | - | - | - | - | odin build . && ./hello |
- | - | - |
| Pascal | fpc |
opm |
- | make |
fpc hello.pas && ./hello |
Runtime Library |
- | Structured / Academic |
| Object Pascal | fpc, dcc32, dcc64 |
opm, GetIt |
- | make, msbuild |
fpc hello.pas && ./hello |
Runtime Library, Visual Component Library |
- | RAD / Enterprise-focused |
| - | - | - | - | - | dcc32 hello.pas && ./hello.exe |
- | - | - |
| PHP | php |
- | composer |
make, phing, composer |
php hello.php |
Zend Engine |
PHP Interpreter (Zend Engine), Microsoft Visual C++ Redistibutable |
Web-standard / Agile |
| - | - | - | - | - | php -S localhost:8000 |
- | - | - |
| PowerShell | pwsh, powershell |
PowerShellGet, winget, chocolatey, scoop |
- | Invoke-Build, psake |
pwsh hello.ps1 |
Common Language Runtime, PowerShell |
Microsoft .NET |
Native / Admin focus |
| - | - | - | - | - | .\hello.ps1 |
- | - | - |
| Python | python, python3 |
uv, pip, conda |
poetry |
setuptools, hatch, poetry, maturin |
uv run hello.py |
CPython |
Python Interpreter (python, uv) |
Instant and quick (If rust-powered) |
| - | - | - | - | - | python hello.py |
- | - | - |
| Rust | rustc |
cargo |
- | cargo, maturin |
cargo run |
- | Microsoft Visual Studio C++ Toolchain or GNU Toolchain (MinGW-w64) |
Robust / Ironclad |
| - | - | - | - | - | rustc main.rs && ./main |
- | - | - |
| Smali | smali, baksmali |
- | - | apktool, gradle |
java -jar smali.jar a out/ -o classes.dex |
Dalvik Virtual Machine, Android Runtime |
Apktool, Android Emulation Environment, Java Development Kit |
Hacker / Reverse-engineer |
| Swift | swiftc, swift |
swift package, cocoapods, carthage |
swift package |
swift build, xcodebuild, cmake |
swift hello.swift |
Swift Runtime |
Swift Toolchain, Xcode Command Line Tools |
Apple-centric / Polished |
| - | - | - | - | - | swift run |
- | - | - |
| - | - | - | - | - | swiftc hello.swift && ./hello |
- | - | - |
| Objective-C | clang, gcc |
cocoapods, carthage |
- | xcodebuild, make, cmake, ninja |
clang hello.m -o hello -framework Foundation && ./hello |
Objective-C Runtime, Foundation Framework |
Xcode Command Line Tools, Apple SDK |
Legacy / Apple ecosystem |
| - | - | - | - | - | xcodebuild -project MyApp.xcodeproj |
- | - | - |
| TypeScript | tsc, tsx, bun |
npm, pnpm, yarn, bun |
npm, pnpm, yarn, bun |
tsc, vite, tsdown, esbuild, swc |
tsx hello.ts |
- | JavaScript Engine (node, deno, bun) |
Strict / Scalable |
| - | - | - | - | - | bun run hello.ts |
- | - | - |
| WebAssembly | wasm-tools, emcc |
wapm, npm |
- | emcc, wasm-pack |
wasm-tools run hello.wasm |
Browser Web Assembly Engine |
browser, wasmtime or wasmer or wasmedge |
Universal / Sandboxed |
| Zig | zig |
- | zig fetch |
zig build |
zig run hello.zig |
- | - | Zero-dependency / Elite |
| - | - | - | - | - | zig build run |
- | - | - |