Do you also have:
1. Statically linked executables (essential but not crucial)
2. Dependency management (import tripleo.rtfm from "git:...#1234567")
3. A good AST API (jdt/roaster, javapoet, etc)
4. Tooling (cf spoon/soot)
(I approve this comment, even given it's limited usefulness/expressivity)