John Rose is a virtual machine expert who's been working on the Java Virtual Machine for several years. He's part of the team that is adding multi-language support to the JVM, specifically, dynamic language support. How does the multi-dynamic-language support mechanism work, exactly, inside the statically typed JVM? What are some of the basic problems faced by VMs that must support both static and dynamic languages? The JVM, like the CLR, has a baked in static type system. What hurdles did this create for John and team and have they jumped them?