AI Briefing
KO

The Seven Archetype Languages of Programming (2022)

·2026.04.20 09:51

Key point

It divides programming languages into 7 archetypes and explains the way of thinking behind each family.

Details

Programming languages should be understood not by their syntax differences but by their differences in basic patterns, which create distinct paths of thinking depending on how iteration, recursion, and composition are handled.

The core archetypes are ALGOL, Lisp, ML, Self, Forth, APL, and Prolog — 7 in total. When learning a new language, transfer is easy within the same archetype, but moving to a different archetype requires dropping familiar habits and thinking in a new way.

  • ALGOL: A procedural family centered on assignment, conditionals, loops, and functions. Most widely used languages today belong here. This includes Assembly, Fortran, C, C++, Python, Java, C#, Ruby, Pascal, JavaScript, Ada, and others, which have since absorbed the object concepts of the Self family and the type/function concepts of the ML family.
  • Lisp: Centers on parenthesized prefix expressions and list-based code, where macros can change the very semantics of the language. Common Lisp, Scheme, Clojure, Emacs Lisp, and AutoLISP belong to this stream.
  • ML: Functions are first-class values, characterized by the Hindley-Milner type system and recursion-based iteration. This leads to Haskell, Standard ML, OCaml, Agda, and Idris.
  • Self: Expresses all behavior through structures where objects exchange messages. It centers on the objects themselves rather than classes, with Smalltalk and Self as representative examples.
  • Forth: A stack-based language that manipulates a stack instead of function arguments. It's also possible to intercept the parser and change the syntax itself; PostScript, Factor, and Joy belong to the same family.
  • APL: A compact language that treats everything as n-dimensional arrays. It expresses whole-array operations with short symbols, and has influenced J, K, MATLAB, NumPy, and R.
  • Prolog: Programs are written as a set of facts and rules, and the runtime searches for query answers. The logic programming perspective, close to SQL, is important here; Prolog, Mercury, and Kanren belong to this group.

As a learning priority, it's considered most efficient to first firmly master the ALGOL family, and then learn SQL next. After that, a strategy of learning one unfamiliar archetype language per year to broaden one's thinking is advantageous in the long run. This can be adjusted depending on needs — for example, learning K earlier if numerical computation is common, or gForth earlier if embedded work is common.

This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.

Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.