Elevator Pitch
Ever wondered how Ruby takes your code and runs it? It’s time to go on a journey into Ruby internals designed especially for Rails developers! We’ll learn about all the parts of an interpreter, and how their inner-workings affect our Rails apps! No experience with C is required!
Description
Ruby’s internal workings often seem like uncharted territory, particularly for Rails developers. Fear not! In this exhilarating session, we embark on an adventure to demystify Ruby’s core internals without the intimidating jargon or C programming nightmares.
🔍 Peeling Back the Layers
Join me as we unravel the secrets of the Ruby interpreter, delve into the intricacies of garbage collection, and explore the groundbreaking JIT optimizations. But fear not, we won’t get lost in the technical maze! Together, we’ll navigate through the essentials:
- Parser: Discover the game-changing new Ruby parser Prism, empowering error handling, enhancing IDE support, and fueling tools like RuboCop.
- VM (YARV): Unveil the wonders of the stack-based VM, understand the nuances of garbage collection (Mark and Sweep/Generational), decode method lookup intricacies, and peek into object allocation strategies.
- YJIT: Journey into the optimized world of YJIT implemented in Rust, the turbocharger for Ruby performance.
⚡ Why It Matters
But why delve into these internals? Because it’s fun! Dismistifying CRuby interpreter is the first step to being able to contribute. Along the way, we’ll learn how some features work and how to write more performant code! We’ll uncover the impact of local vs. instance variables vs methods calls, the performance hits of metaprogramming, and understand how object shapes impact memory efficiency. Plus, gain insights into appreciating the immense dedication of Ruby’s contributors and learn how you can become a part of this vibrant community.
🎯 Who Should Join
This talk caters to intermediate-level developers curious about optimizing their Rails applications and understanding the underlying mechanics of Ruby. No prior C programming or deep internals knowledge is required—just curiosity to dive into the heart of Ruby.
Join me, and let’s journey together through the fascinating world of Ruby’s internals. Unleash the potential within, optimize your code, and embrace the vibrant community driving Ruby’s evolution!
Notes
This talk is aimed at intermediate-level developers familiar with Ruby and its basics. No prior knowledge of C programming or deep understanding of Ruby internals is required. Technical requirements include a basic understanding of programming concepts in Ruby and an interest in exploring the underlying mechanisms of the language.
I’m a Senior Developer working at thoughtbot, and I’ve started my journey into contributing to Ruby myself. I can relate to the general audience since I’m not a C programmer. Also, since I’m working with several different client codebases, I can understand many of the common pains and patterns most of the audience suffers from. Ruby was the first language that “clicked” with me, so for a long time, I wanted to give back to the Ruby language and community in some way. I imagine many attendees feel similarly. Hence, this talk can be the first step for many of them.