What sense does it make to speak of a <i>language</i> as being interpreted or compiled?  These are attributes of an <i>implementation</i>.  The existence of GCJ, a native-code Java compiler that&#x27;s been around for years, proves this.<p>It&#x27;s true there are languages that are essentially uncompilable, and so <i>have</i> to be interpreted.  Perl is the best example I can think of; there are constructs in the language that can&#x27;t be parsed correctly without runtime context.  Python, Ruby, and JavaScript are all difficult to do AoT compilation on as well, at least if you want to do much optimization, but I wouldn&#x27;t agree that they <i>can&#x27;t</i> be compiled.  But Java is not as dynamic as these languages.