YoVDO

OOP and FP - Complementary Techniques in Software Development

Offered By: Devoxx via YouTube

Tags

Devoxx Courses Software Development Courses Object-oriented programming Courses Functional Programming Courses Polymorphism Courses Encapsulation Courses Immutability Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the complementary nature of Object-Oriented Programming (OOP) and Functional Programming (FP) in this insightful 51-minute conference talk from Devoxx. Debunk common misconceptions about both paradigms and discover how they can coexist harmoniously in modern software development. Learn about the core strengths of OOP, including polymorphism and encapsulation, alongside FP's focus on immutability and declarative style. Gain a deeper understanding of message passing in OOP, decomposition techniques in both paradigms, and how to effectively manage errors. Compare imperative and declarative approaches, and examine different versions of functional programming implementation. Equip yourself with the knowledge to choose the right tools for specific programming challenges, ultimately enhancing your ability to create efficient and maintainable code.

Syllabus

Intro
A world of false dichotomies
False dichotimies in software engineering
OOP == Message Passing
Functional Programming Myths
Definitions
What's the difference?
Biggest OOP advantage: Polymorphism
OOP vs FP Decomposition
OOP Decomposition
Composition(?)
Biggest FP advantage: Immutability
Referential transparency means no side-effects
OOP vs FP Error Management
OOP: FP = Imperative: Declarative
FP version 1
FP version 2
85% functional language purity


Taught by

Devoxx

Related Courses

Software as a Service
University of California, Berkeley via Coursera
Software Testing
University of Utah via Udacity
The Hardware/Software Interface
University of Washington via Coursera
Software Debugging
Saarland University via Udacity
Introduction to Systematic Program Design - Part 1
The University of British Columbia via Coursera