Overview
Explore the convergence of functional and imperative programming paradigms in this 51-minute Devoxx conference talk. Delve into Java's journey of adopting functional programming features and compare them to Scala's original implementations. Examine the evolution of generics, closures, lambdas, and pattern matching in both languages. Gain insights from Java Champions José Paumard and Maurice Naftalin as they discuss type erasure, wildcards, partial application, and the ongoing influence of functional programming on Java's development. Discover how these two programming models can coexist and complement each other in modern software development.
Syllabus
Intro
Maurice Naftalin
Functional Programming: Elegant, Mathematically Sound
Object-Oriented Languages: Successful but Envious
Generics: Stating the Problems
Type Erasure in Generic Java
Type Erasure: How does it work?
Type Erasure vs. Inheritance
How about Arrays?
Wildcards to the rescue! (really?)
Generics in Scala
Closures in Pizza
Closures Lambdas in Java
Closures in Scala
Partial Application in Scala
Pattern Matching in Pizza
Pattern Matching in Scala
Conclusion
Taught by
Devoxx