Many moons ago, I wrote an article on the feasibility of currying and partial application in Java 8, and asserted that, while it was technically feasible, explicit and thorough type syntax in the language, as well as inflexible operator notation prevented it from being approachable. In comparison, is Kotlin up to the challenge?
Java 8 now has some functional concepts. How functional can it really get, though?
Java 8 introduces lambdas, but it also introduces method references which are a very handy syntax for producing lambdas off of objects and classes. I walk through the various types here.
Java supports throwing exceptions of a generic type, but it is rarely a useful trick. With Java 8, that is changing.