Object-Oriented vs. Functional Programming
The schism between functional and object-oriented programmers is a false binary. The first group argues that FP is superior for a multicore world, while the second insists that OOP is better at matching technical solutions to business problems. However, this O’Reilly report explains that this is not an either-or proposition.
This book discusses similarities between these programming paradigms and points out that FP and OOP are moving closer. One prominent example is lambda expressions in Java and other OOP languages such as C#, C++, and Swift.
By following examples written in Java, you will learn to
- Learn how lambdas (aka anonymous functions) make OOP languages better suited for dealing with parallelism and concurrency.
- Understand how SOLID—OOP’s five basic programming principles—maps to functional languages and paradigms.
- Explore some of the most common OOP design patterns and how they exist in the functional world.
About the Authors
Richard Warburton is an empirical technologist and a solver of deep technical problems; he works independently as a software engineer and trainer.
Table of contents
Table of Contents
What Object-Oriented and Functional Programmers Can Learn From Each Other
What’s in This Report
Chapter 1. Lambdas: Parameterizing Code by Behavior
Why Do I Need to Learn About Lambda Expressions?
The Basics of Lambda Expressions
Chapter 2. SOLID Principles
Lambda-Enabled SOLID Principles
The Single-Responsibility Principle
The Open/Closed Principle
The Liskov Substitution Principle
The Interface-Segregation Principle
The Dependency-Inversion Principle
Chapter 3. Design Patterns
Functional Design Patterns
The Command Pattern
Chapter 4. Conclusions
Object-Oriented vs. Functional Languages
Programming Language Evolution
Object-Oriented vs. Functional Programming PDF
Author(s): Richard Warburton
Publisher: O’Reilly Media, Year: 2015