Java seems always to have allowed a mostly-Object-Oriented style, but not really forced it. (Auto-[un]boxing has helped, but the wallpaper over that seam isn't completely smooth.) This introduced procedurally-minded programmers to OO more gradually (benefit), but also allowed them to believe they were doing OO without fully embracing the OO programming style (dubious).
So the lessons of OO from other languages have taken quite a while to percolate through the Java community.
It would appear that Java 8 is (belatedly) beginning to bolt on specific features from Functional Programming in much the same way, allowing but not fully embracing FP style.
What sources/resources do you recommend to help legacy Java programmers really understand FP, rather than simply regarding lambdas, streams, etc. as added language features stirred into a procedural+OO+FP gumbo?