Programming Language Paradigm Reference

OOP, functional, procedural, logic — language paradigms compared.

Reference of major programming languages with their primary paradigm, typing discipline and first-release year, covering procedural, object-oriented, functional and logic styles, plus a live filter.

What is a programming paradigm?

A paradigm is a fundamental style of organising and writing programs. The main families are imperative (procedural and object-oriented), declarative (functional and logic), and concurrent models. A paradigm shapes how you express state, control flow and abstraction.

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.