Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyKaigi2017 http://rubykaigi.org/2017/presentations/headius.html JRuby has evolved a lot over 15 years. We've met challenges of performance, native integration, and compatibility. What will we face in the future? In this talk we'll discuss today's JRuby challenges: startup time, code size, type specialization, and tooling. JRuby is the most-used alternative Ruby, and with your help we'll continue to make it the best way to run your Ruby apps.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
The video titled **JRuby at 15 Years: Meeting the Challenges**, presented by Thomas E. Enebo and Charles Nutter at RubyKaigi 2017, addresses the evolution and future challenges of JRuby, the most widely used alternative Ruby implementation. The speakers discussed several key topics reflecting the growth and ongoing development of JRuby over the past 15 years, focusing particularly on performance, compatibility, and community engagement. ### Key Points Discussed: - **Current Status and Roadmap:** - JRuby 1.7 has reached the end of its life, and the JRuby 9.1 branch supports Ruby 2/3 features, with a new JRuby 9.2 expected to release soon, setting the minimum Java version to Java 8. - **Startup Time:** - Startup time is the time taken before user code execution begins. The comparison highlights that JRuby has a slower startup and warm-up time compared to C Ruby but aims to improve peak performance through various optimizations. - Current startup involves loading a significant number of Java classes, and discussions are ongoing to explore ahead-of-time (AOT) compilation to improve these metrics using technologies like Oracle's Substrate VM and the commercial product, Excelsior Jet. - **Warm-Up Time:** - JRuby experiences slower warm-up times but is focusing on optimizing the method conversion process, aiming to enhance performance by implementing a new profiling mechanism to identify frequently called code segments. - **Compatibility Challenges:** - Compatibility with C Ruby remains a challenge due to differences in Ruby specifications and various internal behaviors between JRuby and MRI. The team dedicates about 90% of their efforts to resolving compatibility issues, including addressing bugs reported by users and ensuring functional alignment with MRI features. - Ongoing efforts include developing a façade API to ease the transition for developers porting their C extensions. - **Community Engagement:** - With only two full-time developers, the JRuby team encourages community contributions across various aspects, from bug fixes to enhancements in documentation. ### Significant Examples: - The inefficiencies observed in executing commands like 'gem list', which currently takes substantial time due to the compilation requirements in JRuby, illustrate the performance issues that the team is actively addressing. - The discussion about integration complexities with C extensions shows the technical challenges posed by differences in memory management across Ruby implementations. ### Conclusions and Takeaways: - While JRuby shows promising performance improvements, ongoing optimizations are essential for both startup and warm-up times to remain competitive with C Ruby. - Maintaining compatibility with MRI and ensuring a robust community of contributors are vital for JRuby’s future success. - Feedback and collaboration from the Ruby community play an integral role in enhancing JRuby, underscoring the need for active engagement from developers. This talk not only reflects on past achievements but also sets the stage for the challenges and direction of JRuby going forward.
Suggest modifications
Cancel