This is a mini series of blogs about the social aspects of programming languages and how they allow for interaction between developers and deployments. It does not cover language details. This article focuses on Java, what worked and what did not. (Caveat: this reflects on my experiences with the Java of 2000-2010. There might be newer, relevant changes that I am unaware of. Read it as a retrospective on what was there at the time and what impacts it had.)