The Java programming language has evolved significantly since its introduction in 1995. In this talk, I’ll discuss language changes from the addition of assertions in JDK 1.4 through Project Coin in Java 8, discussing what worked, what didn’t, and why. Finally, I’ll discuss ongoing efforts (Project Lambda for Java 8) and future plans, in light of the lessons learned from previous changes.