Charles Nutter

Charles Oliver Nutter has been co-lead of the JRuby project for the past four years, working on performance and Java integration, and helping to coordinate community efforts. During that time JRuby has become a premier platform for Ruby users, allowing both a gateway to Java-centric organizations as well as an excellent Ruby implementation. Charles hopes to expand JRuby’s success to other JVM languages, building the JVM into the best platform for multi-language development.



What the JVM Does With your Bytecode when Nobody's Looking


Have you tried Mirah yet?

Track: Cool Languages, friday 10:00 - 10:50

Mirah is a pragmatic approach to JVM languages. These days, we have dynamic languages offering higher productivity and fancy web frameworks, functional languages promising to save us from concurrency headaches, and static-typed languages giving us almost infinitely extensible type systems. Mirah is different, delivering a rich set of language features with no runtime dependencies. It borrows Ruby's syntax for clean code, but it is static-typed with optional dynamic typing like C#. It supports macro expansions like C, making it more fluid and extensible. The type system is almost identical to Java, and the compiler can output both class files and Java source files. Come see why Mirah may be your next JVM language.

What the JVM Does With your Bytecode when Nobody's Looking

Track: Java, friday 13:00 - 13:50

Look at you, hacker. You think you know all there is about building apps for the JVM. You've used all the cool tools. You've written your own persistence library or web frameworks. Maybe you've even implemented a JVM language. But do you really know what happens to your code after you hand it off to the JVM? This talk will explore the guts of the OpenJDK VM, Hotspot. We'll take a few simple examples from bytecode through optimization and compilation all the way down to assembly code, and explore how you can ensure your code runs as fast as possible. We'll see how generational garbage collection works with the aid of VisualVM and learn a few JVM flags to help you tune it. We'll play with invokedynamic and show how it fits into the JVM story. And we'll chat about how you can take advantage of this newfound knowledge to be a better JVM user.