Functional vs. Object-Oriented Programming

Functional vs. Object-Oriented Programming

Differences Between Functional and Object-Oriented Programming

 

  Functional Object-oriented
Unit of composition Functions Objects (classes)
Programming style Declarative Imperative
Coding Pattern Composition (Chaining / Currying) Inheritance
Data and behavior Loosely coupled into pure, standalone functions Tightly coupled in classes with methods
State management Treats objects as immutable values Favors mutation of objects via instance methods
Control flow Functions and recursion Loops and conditionals
Thread safety Enables concurrent programming Difficult to achieve
Encapsulation Not needed because everything is immutable Needed to protect data integrity