Is it Time for Functional Programming in Java?