What makes Java *Java*? Why is it so well-suited to writing safe, useful, performant, and maintainable code? In "The isthmus in the VM" (blogs.oracle.com/jrose/the-isth…), JVM architect John Rose describes 16 core Java principles that answer those questions. Here they are (verbatim). 🧵
Basic Type Safety Pointers, integers, and floats must not be confused; conversions must be explicit and must preserve VM integrity. This applies to values of all kinds, in memory and elsewhere.
Basic Operation Safety Any basic VM operation either completes according to its specification, or produces a catchable exception. It cannot corrupt memory or any other VM state.
Class Safety Pointer conversions must be explicit and checked. There are exceptions for conversion to a Java superclass (which is always safe), to a Java interface (which is always checked later at any use point), and to an erased generic type (which is checked implicitly).