Skip to content

Programming Paradigms Roadmap

"A language that doesn't affect the way you think about programming is not worth knowing." — Alan Perlis

A paradigm is a way of structuring computation and of thinking about programs — what the basic building blocks are (objects? functions? rules? streams?), how state is handled, and how control flows. This roadmap is the map of that space: the major paradigms, what problem each was invented to solve, and how to combine them in real code.

The two largest paradigms have their own dedicated roadmaps: - Object-Oriented Programmingobject-oriented-programming/ - Functional Programmingcode-craft/functional-programming/

This roadmap covers everything around and between them — plus the overview that ties all paradigms together.


Why a Dedicated Roadmap

Most engineers learn one paradigm (usually OOP) by osmosis and never see the others clearly. But the paradigm you reach for shapes every design decision you make. Knowing the full menu — and the trade-offs — is what lets you pick reactive for a UI stream, data-oriented for a hot loop, declarative for a config language, and actors for a distributed system, instead of forcing everything into the one shape you happen to know.

Roadmap Question it answers
Object-Oriented Programming How do I model with objects, messages, and responsibilities?
Functional Programming How do I compute by transforming values instead of mutating state?
Programming Paradigms (this) What are all the ways to structure a program, and when does each win?

Sections

# Paradigm Core idea
01 Overview & Taxonomy The imperative ↔ declarative spectrum; how paradigms relate and overlap
02 Imperative & Procedural Statements, sequence, procedures; the substrate most others compile down to
03 Declarative Programming Describe what, not how — SQL, config, build systems, constraint solvers
04 Logic Programming Facts, rules, and unification — Prolog, Datalog, rule engines
05 Reactive Programming Values that change over time — observables, streams, backpressure (Rx)
06 Dataflow & Stream Computation as a graph of data dependencies; pipelines, FBP
07 Actor Model & CSP Concurrency as isolated processes exchanging messages — Erlang, Akka, Go channels
08 Generic Programming Algorithms parameterized over types — templates, concepts, traits
09 Aspect-Oriented Programming Cross-cutting concerns (logging, security) woven separately from core logic
10 Data-Oriented Programming Design around data layout and transformation — ECS, cache-friendly, DOP
11 Event-Driven Programming Control flow driven by events and handlers; callbacks, the event loop
12 Array-Oriented Programming Whole-array/vectorized operations — APL, J, NumPy, dataframes
13 Constraint Programming Declare constraints, let a solver find solutions — CLP, SAT/SMT, schedulers
14 Probabilistic Programming Programs as probability distributions — Bayesian inference, PPLs (Stan, Pyro)
15 Symbolic Programming Code as data, homoiconicity, term rewriting — Lisp tradition, CAS
16 Concatenative & Stack-Based Composition by juxtaposition over an implicit stack — Forth, Factor, PostScript
17 Multiparadigm in Practice How real languages (Rust, Scala, Kotlin, Python, C++) blend paradigms

Scope & Deduplication

This roadmap stays at the paradigm / way-of-thinking level and cross-links to where the mechanics live:

Looks similar to But here we cover The mechanics live in
07-actor-model-and-csp actors/CSP as a way to structure concurrency Language Internals → Concurrency
05-reactive-programming reactive as a paradigm (observables, backpressure) FP → Laziness & Streams, System Design → Data Streaming
08-generic-programming generic programming as a style Language Internals → Type Systems
03-declarative-programming the declarative mindset SQL, build tools, IaC roadmaps
OOP / FP — (each is its own roadmap) OOP, FP

Status

Skeleton — topic folders are scaffolded; content is written per topic following the Code Craft file convention. All content in English.