How languages want you to think
A programming paradigm is the underlying philosophy of how you structure code. The four classic families are procedural, object-oriented, functional and logic, with concurrent models layered on top. This reference lists major languages with their primary paradigm, typing discipline and origin year so you can see how each one expects you to organise a program.
How it works
Paradigms describe the dominant style a language encourages, though most languages support several. The broad map looks like this:
Imperative → Procedural (C, Go) · Object-oriented (Java, Ruby, C#)
Declarative → Functional (Haskell, Clojure, Elixir) · Logic (Prolog) · Query (SQL)
Concurrent → Actor model (Erlang, Elixir) · CSP (Go)
Procedural and OOP code is imperative — you spell out how to compute a result. Functional and logic code is declarative — you describe what the result is and let the runtime work out the steps. The filter searches names, paradigms and typing so you can compare languages at a glance.
Tips and notes
- Most mainstream languages are multi-paradigm; the label here is the primary style.
- “Purely functional” (Haskell) enforces immutability; “functional-first” languages allow side effects.
- SQL and Prolog are declarative — you state goals rather than control flow.
- Pair this with the typing reference to see static-versus-dynamic discipline too.