Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

RubyConf Brazil 2010 - JRuby

on

  • 2,037 views

 

Statistics

Views

Total Views
2,037
Views on SlideShare
2,037
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

RubyConf Brazil 2010 - JRuby RubyConf Brazil 2010 - JRuby Presentation Transcript

  • JRuby The Best of Both Worlds
  • Me • Charles Oliver Nutter • JRuby Architect at Engine Yard • Java developer since 1997 • JRuby developer since 2005 • @headius, headius@headius.com
  • JRuby • Ruby on JVM • Latest release: 1.5.3 • Ruby 1.8.7 compat, 1.9.2 coming • It’s Just Ruby! • (It’s Not Just Ruby!)
  • If you... ...want or need to run on JVM... ...JRuby is the answer!
  • If you... ...need to use a Java library... ...JRuby is the answer!
  • If you... ...want the best GC in the world... ...JRuby is the answer!
  • If you... ...hate dealing with native libraries... ...JRuby is the answer!
  • If you... ...need to develop or deploy on Windows... ...JRuby is the answer!
  • If you... ...need to develop or deploy on zLinux... ...JRuby is the answer!
  • If you... ...need to develop or deploy on AS/400... ...JRuby is the answer!
  • If you... ...need to develop or deploy on OpenVMS... ...JRuby is the answer!
  • If you... ...want to integrate with other languages like Clojure, Scala, Mirah... ...JRuby is the answer!
  • If you... ...want a better Ruby... ...JRuby is the answer!
  • Boring Stuff • Trivial install: unpack, run (only prereq: Java) • Performance is great, ~1.9 • Rails etc run great • Production users since 2007 • Most mature, most stable alternative Ruby
  • Installation • Step 1: unpack JRuby
  • Installation • Java (easy on any platform) • Download, unpack JRuby • Or use rvm, pik, apt-get, yum, etc • Add bin/ to PATH • Done!
  • Cool Stuff • Java/JVM integration • Native threads (real concurrency!) • Tooling and maturity • New frontiers
  • Platform Integration • Use any Java library like it’s a Ruby library • No-compile, single-file deployments • Cross-platform GUI libraries
  • Using a Library
  • Native Threads • Ruby Thread :: Native Thread • Thread.new # real system-level thread • One process can saturate all cores • One Rails instance for a whole site
  • Scaling Rails
  • Tooling and Maturity • Editor/IDE support with bonuses • Debugging tools • Profiling, memory tools • Commercial JVM environments • Richest tools of any Ruby
  • Tools
  • New Frontiers • Google AppEngine • Java or Python only (...or JRuby!) • Android • Java-mostly (...or JRuby!) • Anywhere with a Java server • Deploy like any other application
  • Android
  • New Stuff • C Extensions • Improving Performance • Tighter Java Integration
  • C Extensions • Biggest migration headache • JRuby 1.6: C extension support • Ruby Summer of Code: @timfelgentreff • Not recommended, but... • Good enough for migration
  • Improving Performance • JVM is fast because... • Efficient JIT compiler • Method inlining • JRuby has a JIT, but... • Not super efficient • No inlining
  • Yay JVM! • InvokeDynamic in Java 7 • JVM writers use JRuby as a test case • ...and competing to run JRuby best! • Dynamic optimizations • 3-5x improvement on early experiments
  • Tighter Java Integration • Generating “real” Java classes • `jrubyc --java(c)` • become_java! • Reduced call overhead • Eliminating reflection • Avoiding unnecessary conversions
  • Your Turn • Just try it! • Tell everyone • Let us know what you need
  • JRuby Book!
  • For The Managers • Three fulltime devs at Engine Yard • Support, professional services • And OSS-style IRC/email support • Engine Yard Cloud (soon!) • Well-established, mature, stable
  • Production Users • Oslo Airport refueling terminals • LinkedIn’s “Signal” social aggregator • BankSimple • Oracle Mix, Kenai • Thoughtworks • Github FI (Firewall Install)
  • More? • Madness! • Redcar
  • Thanks! • http://jruby.org • http://wiki.jruby.org • http://bugs.jruby.org • http://engineyard.com/jruby • http://blog.headius.com