Skip to content

RubyKaigi 2008 Day 1 Part 2 Notes

Here’s a continuation of my scribbled notes from the RubyKaigi. This one from the JRuby implementors. Some of my own thoughts and comments are inserted in parentheses.

Charles Nutter on JRuby

  • Quick intro and the impressive live demos of JRuby in action (or as the IRC channel said Nice Live Coding (NLC))
  • This summer, work on Ruby 1.9 features (seems there’s an option flag to turn on 1.9 compatibility mode already)
  • Current 1.1.3 Progress Report
    • A new interpreter that is up to 30% faster
    • Compile-time performance enhancements
    • Many Rails Bottlenecks fixed
  • No new release of JRuby this year but…
  • Wanted to show some uses of JRuby
    • IDEs (NetBeans, Eclipse, INtelliJ use JRuby in their IDEs
    • Swing GUI development
      • Swing development can be very complex but Ruby helps to simplify it
      • Benefits from the ‘Write once, Run everywhere’
      • There are a plethora of options to choose from (why does this seem to happen in the Java world all the time?)
        • Cheri
        • Profligacy (by the infamous Rails Ghetto-man Zed Shaw)
        • MonkeyBars (Proceeded to show an impressive demo)
          • MonkeyBars leverages existing GUI utils (that’s a major plus)
          • MVC-like structure (hey looks like Rails…)
    • Graphics (Showed some really sweet demos of ruby-processing in action)
      • Processing had a way to interface to audio input devices
      • Remember to check out “A Face for Stephen Hawking”. Wow that code looked really clean…
    • Rails (the benchmark app that all implementors need to measure implementation readiness by)
      • There has been a shift in Java Web frameworks lately (but still happening at a glacial pace)
      • Deployment problem is “solved” (I keep hearing this…)
      • mongrel is “old school” (at least for JRuby-based deployments)
      • Made mention of Phusion/Passenger but it still had the issue of rails process spawning and how to manage that (Seems Jruby doesn’t have these issues)
      • Some war deployment demoes
        • A warbler demo (A tool to help create war files)
        • Will package in Jruby automagically into the war (That’s very nice)
        • Just run warble inside the rails application directory (Hopefully it doesn’t package up a gigantic development.log)
        • As simple as GLASSFISH_HOME/bin/asadmin deploy *.war
        • Has Rack supoprt (can handle Merb and anything else with Rack support
        • Can be configurable
        • From his demo, it seems that warble will make a war of anything (aka be careful what directory you run this command)
      • Showed some really nice benchmarks of rails and JRuby (I need to put this through the ringer when I get more time)
      • Showed another deployment tool called the glassfish gem
        • 3MB gem that had everything needed for JRuby on Rails
        • Tries to match the agile process
    • JRuby Users (in production): CSI’s Disease Surveillance, Oracle’s Mix website, Sun’s Media Cast, Thoughtworks Mingle

Q & A

  • Q: The Parser Implementation seems hard. Any war stories
  • A: I hate parsers and refuse to write one. Someone wrote something that used J. I don’t know much about it but Tom’s pains dealing with it seem very hard. No plans to change parsers anytime in the near future.
  • Q: Object Space & Binding
  • A: On Jruby, this will incur an automatic performance penalty. binding & caller will be required each time which incurs a heavy cost
  • Q: Non-local break performance?
  • A: Implemented as a Java Exception. By doing this, the JVM can optimize that as a Jump. JRuby tries to use this as much as possible behind the scenes for performance
Be Sociable, Share!