jRuby

by Hubert Łępicki

@hubertlepicki

jRuby

  • implementation of Ruby on JVM
  • compatible with 2.0 syntax
  • no GIL
  • threads
  • runs on windows
  • deploys to Java infrastructure

Problems

  • slow startup time
  • incompatible gems / libraries
  • somehow lags behind in features compared to MRI

Advantages over MRI

  • access to Java & JVM libraries/frameworks
  • allows access to Ruby from Java & JVM
  • integrates with Java montioring/profiling tools

Cool jRuby projects

  • Torquebox
  • vert.x
  • puma

What about hosting?

  • Heroku!
  • Any Java hosting really
  • Any dedicated hosting
  • Any VPS

Just have enough RAM

Torquebox

http://torquebox.org

Vert.x

http://vertx.io

 

Synchronous vs Async

  • i/o  and database access APIs
  • message bus
  • integration with JavaScript
  • clustering

Ruby web servers

  • Threads!
  • Threads :(
  • Puma
  • Trinidad
  • Jubilee

Performance

  • JIT
  • slow startup
  • slow warmup
  • suddenly insanely fast

Project Gral

 

"The aim of this project is to expose VM functionality via Java APIs. Namely, we want to make it feasible to write in Java a dynamic compiler and interpreter for a language runtime. These components will seamlessly integrate and leverage existing VM infrastructure (e.g., HotSpot)."

Truffle

"The Truffle runtime of JRuby is an experimental implementation of an interpreter for JRuby using the Truffle AST interpreting framework and the Graal compiler. (...) The goal is to be both significantly faster and simpler than other high performance implementations of Ruby."

Try it out

rvm install jruby

Thank you!

jRuby

By Hubert Łępicki

jRuby

  • 1,530