What I dub OOP-lite is the software paradigm being popularized by modern programming languages like Go, Rust and V1.

This paradigm is characterized by the use of:

  • Interfaces
  • Explicit separation of state (struct) and behavior (methods for a specific type)
  • Composition over inheritance

Like OOP:

  • It relies on polymorphism, but provided through interfaces

Unlike traditional OOP:

  • Avoids inheritance and deep class hierarchies

Footnotes

  1. And I’m certainly missing others, these are the ones I’m most familiar with.