Very dynamic languages like Lisp, TCL, and Smalltalk are often used for prototyping. One of the reasons for their success at this is that they are very robust […] Another reason […] is that they don’t require you to pin down decisions early on. Java has exactly the opposite property: it forces you to make choices explicitly.

— James Gosling, Java: An Overview, 1995 (via)