Static languages invariably end up adding features that make them more dynamic (or make them feel more dynamic). Dynamic languages strive for performance by making things more static. This talk explores how runtime optimization is making a dynamic language, JRuby, more static…for purposes of execution and performance. We’ll see how dynamic invocation and compile-time metaprogramming are making a static language, Mirah, feel and act more dynamic. Finally, we’ll discuss this middle ground and where it might lead.