There have been some intersting comments by Guy Steele on the ll1 maillist regarding design decisions in Java. Tidbits follow.
You know how local variables or arguments that are “captured” by an inner class need to be declared final? Well, it originally wasn’t going to be that way. We would have had “closures”: