Functional Way of Thinking
It’s a nice talk about functional way of thinking. The “functional” provides a different way of programming style from the object-oriented and imperative ones. The concept is not about specific language or syntax, but rather a different paradigm to think on problem solving.
The Functional Java is one example to apply this paradigm in the Java through libraries.
The library provides functional data-operations like map, filter, etc., and it can be applied into the familiar object-oriented and imperative Java syntax.
Also, Java is now equipped with lambda expression and streams. Along with Scala, the functional style seems getting into the mainstream gradually.
I was yet a little skeptical about the paradigm of functional programming, mostly because it is difficult. It requires more abstracted way or mathematical thinking, rather than more concrete and basic imperative way of thinking. However, recent adoption of functional paradigm in the popular languages would be a good indicator that certain paradigm shift in the majority area is now happening.