This part of the book brings together many of the techniques and concepts you’ve seen throughout the other parts.
Continuing on from the introduction to Clojure in chapter 10, you’ll dig into functional programming beyond the basics of map-filter-reduce. You’ll see in detail why Java’s design and history present some barriers to the functional style. Then you’ll get a further taste of how more advanced techniques in functional languages appear in Kotlin and Clojure to simplify and empower your code.
Building on the concurrency topics from part 2, you’ll also see other possibilities for building safe, performant applications. From recently introduced capabilities in Java like Fork/Join, to Kotlin’s coroutines, and Clojure’s agents, you’ll come away with more options managing the multicore, multithreaded world of modern computing.