One comment’s answer was ’marketing’, which in a sense is correct; one reason we call Java a compiled language is that that’s what Sun called it from the start. Another comment noted that Java has an explicit compilation phase that is separate from having the JVM execute your Java program by interpreting the bytecodes. All of this points us towards what I feel is the real answer:

In Java, bytecode is a first class object. In Python it’s an internal implementation detail.

» Chris Siebenmann |