Sometimes I feel that Java has become a second class citizen on the JVM. While it commands a huge market share and is generally blazingly fast it hasn’t progressed like Clojure, Scala and even Groovy have. Java 8 delivered on some of the long planned features and this post is to talk about my favourites. Streams Java’s Streams are monads that let you represent computations as a chain of steps. Typically they are created from a Collection and then the typical functional map, reduce, filter...