Why Functional Programming In Java