Brian Goetz on the future of Java
Brian Goetz, author of Java Concurrency in Practice, is leading Project Lambda, Oracle's effort to add lambda expressions to Java. Below is an excerpt from comments he posted last year on the design.
Oracle's position is that Java must evolve -- carefully, of course -- in order to remain competitive. This is, of course, a difficult balancing act. It is my belief that the best direction for evolving Java is to encourage a more functional style of programming. The role of Lambda is primarily to support the development and consumption of more functional-like libraries; I've offered examples such as filter-map-reduce to illustrate this direction. There is plenty of evidence in the ecosystem to support the hypothesis that, if given the tools to do so easily, object-oriented programmers are ready to embrace functional techniques (such as immutability) and work them into an object-oriented view of the world, and will write better, less error-prone code as a result. Simply put, we believe the best thing we can do for Java developers is to give them a gentle push towards a more functional style of programming. We're not going to turn Java into Haskell, nor even into Scala. But the direction is clear.Thanks to Maurice Naftalin for pointing me to these comments, in response to some questions I raised regarding his FAQ.