Java design goals
simple/familiar
- C/C++ syntax, imperative, procedural
object-oriented
- modularity, encapsulation, abstraction
robust + secure
- byte-code is verified by class loader
- e.g.: stack frame integrity ensured
- no unsafe pointers (references only)