YJIT is a JIT built into CRuby 3.1.0 and higher. YJIT blends three (and more) different languages together. It gets a lot of its power from that. Programmers do that trick in almost every large project. Let's talk about what that looks like, what it means, and what YJIT can show us about it.
In 2024, I’ll have been a programmer for 40 years. If you want to be a programmer for a long time, I have some recommendations. I’ll tell you things that didn’t make sense to me when I started, and now they’re the guiding stars in my sky. That means it’s not about specific technologies. Technologies come and go. Languages come and go. They can’t be your sky.
Most talks are bad. Most slides are terrible. But by treating your talk as a comic, or similar visual story, you can do far better. Also, then there are great sources to steal from. Let's talk about how to make a presentation that ***isn't*** awful, including insights from Scott McCloud's 'Understanding Comics' and a few other good references.
Imagine if you could just pick up any coding problem and solve it. There's a way to get that "fingertip feel" for coding. And it comes from mindful, conscious practice.
Coding exercises are... fine. But there's a kind of exercise we can steal from another industry that works incredibly well. After this talk, you'll be able to create coding studies for yourself, not just find other people's exercises that are already worked out for you.
The talk is in Ruby. But the technique works with any language, library or paradigm. It's also good for pairing.
Rails 'magic' is just Ruby metaprogramming. You can understand Ruby's metaprogramming features and Rails' more unexpected systems in one go by building your own Ruby MVC web framework, structured like Rails.
This is a three-hour workshop, as delivered at RailsConf 2019 and Southeast Ruby 2019 (sorry, no video!). So I've helped over a hundred people debug this live as they typed it in :-)
Ruby 2.6 added a JIT implementation, called MJIT. How did it happen? How does it work? How do we use it? What code does it work well or poorly on? All this and more... But the video hasn't posted, alas, as of the beginning of 2020.