Programming Languages
Notes on programming languages, organized by language family from low-level systems work up to applied / data-oriented use.
Figure: C remains the reference language for low-level memory, pointers, and Unix interfaces. Image: Wikimedia Commons, ElodinKaldwin, public domain text logo.
Figure: C++ extends systems programming with abstraction, generic code, and deterministic resource management. Image: Wikimedia Commons, Jeremy Kratz, public domain text logo.
Figure: Python provides the practical environment for many CS, ML, and data examples. Image: Wikimedia Commons, Python Software Foundation, GPL-compatible free license; trademark terms apply.
Figure: Rust connects systems control with compile-time memory-safety guarantees. Image: Wikimedia Commons, Rust Foundation, CC BY 4.0.
Figure: R connects programming examples to statistical modeling and visualization workflows. Image: Wikimedia Commons, The R Foundation, CC BY-SA 4.0.
Languages
- C — the systems language; types, pointers, memory, and the C standard library
- C++ — objects, templates, the STL, and modern C++ idioms (populated from Walter Savitch, Absolute C++)
- Rust — ownership, borrowing, lifetimes, and safe systems programming
- Java — the JVM, classes, collections, and concurrency
- Python — dynamic typing, idioms, the standard library, and the scientific stack
- R — vectors, data frames, the tidyverse, and statistical visualization
Why this order
The progression goes from systems-level to applied:
- C establishes the cost model — every other language is partially explained as a layer over it.
- C++ adds abstraction (classes, templates, the STL) without giving up the cost model.
- Rust keeps the cost model but enforces memory safety statically.
- Java trades direct memory control for a managed runtime and rich libraries.
- Python trades performance for ergonomics and a vast ecosystem.
- R is specialized for statistical data analysis.
Pages within each language section have their own ordering — usually basics → types → control flow → data structures → idioms → advanced features.