Crossing the Gap from Imperative to Functional Programming Through Refactoring

The introduction of lambdas to Java 8 might be the most significant change to the Java language since Java 2 was released in 1998. Lambdas and the accompanying functional operations like map and filter promise to allow Java programmers to write clearer, simpler code, and to take better advantage of parallelism. While creators of new code will be able to start using the features immediately, what should we do with the billions of lines of code that have already been written?

Peter Burka (Software Developer, Two Sigma Investments) gives an in-depth presentation on the paper Crossing the Gap from Imperative to Functional Programming through Refactoring by Alex Gyori, Lyle Franklin, Danny Dig, and Jan Lahoda. This paper proposes that we can automatically translate the existing body of Java code to make use of the new features. This improves the readability of the old code, maintains consistency between new and old code, and potentially improves performance. It also addresses technical debt.


This talk was given at the Papers We Love meetup at Viggle in NYC.