In this interview from QCon London 2008, Neal Gafter discusses upcoming language features in Java 7, superpackages, what closures are, the differences between the three major closures proposals (CICE, FCM and BGGA), optional typing systems for dynamic languages, and the next major language.
Watch Neal Gafter Discusses Closures, Language Features and Optional Typing (26 minutes).
From the interview, Gafter gives a brief overview of what closures are:
Closures are sort of an umbrella word to talk about a group of related features in the same way that generics is not a thing, but it describes a group of related features. The most important is anonymous functions; it's an expression that's an anonymous function. Computer science theory folks would call it a lambda expression and it is actually not a new idea at all, it dates back to the theoretical work from the 1930s and the lambda calculus and the most important early implementations were in the Scheme programming language and in Smalltalk.
And we have closures or lambda expressions or anonymous functions in many many programming languages today, almost all of the dynamic languages, all of the functional programming languages, pretty much almost every language that has been introduced in the past ten years, for example, has something like closures. So the idea is, it is a function, it is an expression that designates a function, it identifies the parameters, and you say here is the code of the function, it could be statements or it could be just a result expression.