Al Hoang

June 21, 2008

RubyKaigi 2008 Day 1 Part 2 Notes

Filed under: Open Source, geek, programming, ruby — hoanga @ 4:31 pm

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

RubyKaigi 2008 Day 1 Part 1 Notes

Filed under: Open Source, geek, programming, ruby — hoanga @ 4:08 pm

Ruby Kaigi 2008 is happening. I’m sure there other posts on the Ruby Kaigi happening however here are some of my own hasty scribbles for anyone that cares…

Introduction Speech

  • This is the 3rd year of the conference
  • One theme of this year is multiple implementatios
  • More people coming into the Ruby community and we need to greet the (Dave Thomas’ speech from last year)
  • Two tracks this year (I mostly followed the main track)

The first set of presentations from the main track were from the Ruby implementors.

Koichi SASADA – Ruby VM Development

  • 1.9.0-2 released as of 6/20/2008 (mainly bug fixes)
  • A little discussion of 1.9.1 Roadmap (Something about 1.9.1 being the more stable release?)
  • A plethora of interpreters available now (lists all of them)
  • Sasada-san felt a little sheepish over Matz mentioning taking only about technology is ‘boring’ since his talk focused on mainly technology
  • University of Tokyo has become a haven for since Sasada-san now has a laboratory (wahoo!) which means…
    • Ruby related research-projects
    • Student Research Projects on Ruby
  • Parallel Thread Execution
    • Better multi-core support
    • Memory resource usage (or was that resource contention?) can be a problem
  • Multiple-VMs
    • Run Multiple VMs in same Ruby process
    • Jruby + Nakada-san are the primary drivers
    • The JRuby guys are ready to implement it (waiting on API) and Rubinius seems to have one already
  • API done
  • bootstrap done
  • Creation of interpreter mostly done (seems to have some small issues?)
  • Still needs documentation (What project doesn’t?)
  • High Performance Computing (HPC) on Ruby
    • Ruby implementations needs FP optimization for HPC
    • Ruby 1.9.x quite fast compared to other implementations (according to the Benchmarks Sasada-san showed)
  • Atomic Ruby (aka Customizeable Ruby)
    • Create an Optimal interpreter for “you”
    • Make it easier for Ruby to be used in embedded environments
    • Make it easier for Ruby customized for specific environments (iPhone anyone?)
    • Make it possible to plug in and out the core pieces
    • Byte code serialization and embedded
    • Make the GC customizeable
  • More work memory optimizations (Sounded like there was the need for more profiling)
  • Powered by WordPress

    Protected by AkismetBlog with WordPress