20 Years of JRuby - Where We've Been and Where We're Going
summary
JRuby claims 20 years of driving JVM features and now hits concrete milestones: ~99% language compatibility, a plan to adopt the Prism parser, and Java ports Joni/jcodings for regex and encodings. Key wins: invokeDynamic powers dynamic call sites and escape analysis gains; Panama and FFI work halve some JNI-bound database ops. Startup remains the blocker (hello world: CRuby ~0.05s vs JRuby much slower; rails new ~0.3s vs ~6s, reduced under 3s with --dev, better with CRIU snapshotting and Leaden AOT). Loom virtual threads scale hundreds of thousands of fibers (hand-off ~4–13µs).
AI-written summary · about
chapters (19)
- 0:00Introduction
- 1:04JRuby compatibility and JVM
- 3:56JRuby as JVM sandbox
- 5:01JRuby timeline
- 7:30Decline of JVM langs
- 9:38Ruby implementations
- 11:24JRuby compiler pipeline
- 14:33Ruby parsing flow
- 16:36Mixed-mode runtime
- 18:45Stack traces in JRuby
- 21:56InvokeDynamic role
- 24:47Performance comparison with TruffleRuby
- 27:58JRuby startup time
- 34:20Core library compat
- 37:31Project Panama native
- 39:40Fibers and virtual threads
- 47:07JRuby JVM quirks
- 49:58JRuby future challenges
- 51:23Revive JVM language talks
related talks
46mTwenty Years of JRuby
39mJRuby: Insights from Six Years in Production
42mJRuby at 15 Years: Meeting the Challenges
54mLeading Edge! Changing the Java World
30mBuilding JRuby: How We Implement Ruby on the JVM
47mBeyond JVM: How the Platform is Evolving for new Languages & Features
31mExpand your Ruby Potential with JRuby
37mState of JRuby 2014
