Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
http://rubykaigi.org/2015/presentations/evanphx
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
In the keynote titled **"Ruby 2020"**, delivered by **Evan Phoenix** during **RubyKaigi 2015**, the focus is on the technical advancements necessary for Ruby to achieve significant performance improvements, particularly with the target of Ruby 3 being three times faster than Ruby 2. Phoenix draws from his extensive background with Ruby and related projects while establishing the need for a **Just-in-Time (JIT) compiler** as a crucial component for enhancing Ruby's performance. ### Key Points Discussed: - **Introduction and Credentials**: Phoenix introduces himself and expresses gratitude towards the RubyKaigi organizers. He shares his journey in Ruby development, mentioning projects like Rubinius and Puma. - **Historical Context**: Reflecting on past attempts, Phoenix talks about his earlier work on Ruby, specifically a project called **Sydney**, which introduced native threads but was never merged into CRuby due to its size. - **Performance Goals**: He discusses Matz's vision for Ruby 3 to be significantly faster and raises questions about the community's approach to achieving this goal. - **Defining Performance**: Two aspects of performance are outlined: parallel execution and efficiency in code, stressing the complexity involved in achieving true parallelism in Ruby. - **Micro vs Macro Optimizations**: Phoenix advocates for macro-optimizations rather than relying only on micro-optimizations, emphasizing the limitations of small, incremental changes. - **Importance of JIT**: He argues that a JIT compiler is pivotal for Ruby's speed improvements, providing examples of how a JIT can radically speed up code execution. - **Historical Research**: Citing the language **Self** and its innovations in JIT compilation, he shows the principles still relevant today, and discusses how similar strategies can be applied to optimize Ruby. - **Implementation Approaches**: Phoenix reviews various JIT techniques including tracing JITs and method JITs, detailing the advantages and challenges inherent in each. - **Integration with CRuby**: He proposes integrating JIT capabilities into CRuby while cautioning against the pitfalls of losing visibility into the operations of core methods, suggesting a 'Canary' approach for profiling. ### Conclusion and Takeaways: - Phoenix concludes with a call to action for the Ruby community to work collaboratively towards integrating JIT capabilities into CRuby, leveraging existing structures and focusing on practical solutions that align with the language's philosophy. - He emphasizes the significance of turning ideas into reality for Ruby's future, advocating for systematic changes to achieve the lofty performance goals set for Ruby 3. The keynote serves as both a technical discussion and a motivational push towards innovation within the Ruby community.
Suggest modifications
Cancel