Hitchhiker's guide to state-of-the art FP practices in modern Java learned from other ecosystems

Modern java is advancing at a rapid pace. And as a developer tinkering with FP since 2010, I could see all the ideas, goodness, paradigms, thought-processes which are there in other language/ecosystem like Haskell, Scala, Clojure etc..could easily be brought into modern Java. On a day-to-day basis if these concepts are inculcated in medium to big JAVA enterprise projects we can reap significant benefits across multiple areas -

1.  Reduced tech-debt

2.  Better re-usability

3.  Improved Error/Edge case handling 

4. Reduced complexity

In my previous talk  2019, we mostly discussed about the benefits of switching to FP side of java. In this talk we are going to go deep into FP practices followed elsewhere and how to bring in enterprise java projects with concrete examples


Outline/Structure of the Talk

a. Quick intro to modern Java vs Non Java eco-system (scala, haskell, clojure, Kotlin, F#)

b. Out of the box powers/design-patterns and benefits we are getting from non-java eco-system.

c. Examples and elaborations around day to day programming areas validations, database interactions, retry, error-handling, concurrency

d. Benefits 


Learning Outcome

a. Monads, Applicative, Functors; mtl ...how these can be brought into Java

b. Algebric data types, category theory

c. Persistent data-structures

c. Power of DSL(from clojure, Kotlin)

d. concurrency / thread safety (zio, loom etc..) without side-effects


Target Audience

Java developers of all levels beginner, intermediate, advanced

Prerequisites for Attendees

Basic Java-programming knowledge

schedule Submitted 6 months ago

Public Feedback