🙂 I hope you enjoyed your Christmas break! I'm still on mine, but because Ruby has such an interesting release schedule, I felt I had to come back for this special issue all about Ruby 3.0 which came out on Christmas Day :-) __ Peter Cooper, your editor |
The Official Ruby 3.0 Release Post— This is the place to start if you want a quick roundup direct from the core team. We’re going to dig in more throughout the rest of this issue, but the core points are:
- Ruby 3.0 meets the 3x3 goal by being 3x faster than Ruby 2.0 on some benchmarks.
- MJIT is more mature though still not considered one size fits all. Some workloads it'll speed up significantly, others (such as Rails apps) it could even slow down.
- Actor-like Ractors have been (experimentally) introduced as a new concurrency abstraction.
Fiber#scheduler brings in some neat 'behind the scenes' improvements for existing concurrency approaches.- The RBS language is a new, official way to describe types used in Ruby programs and TypeProf can infer types from existing Ruby code.
Yui Naruse and the Ruby Core Team |
The Epic Ruby 3.0 Changelog— A deeper, code-driven look over the key syntax and feature changes in Ruby 3.0. This is the one resource to skim if you’re short of time because many of these things might catch you out when you upgrade. We were a huge fan of the Ruby 2.7 version too. Ruby References |
A List of Ruby 3 Features— A more quickly digested, high level version of the above, perhaps. I think beginners might prefer this. Datt Dongare beginner |
Ruby 3.0 JIT and Beyond— “Ruby 3.0 JIT is the fastest JIT ever for MRI. However, despite Ruby 3.0’s big improvement in reducing i-cache misses, it’s still not ready for optimizing Rails applications. Stay tuned for Ruby 3.1.” k0kubun |
Climbing Steep Hills, or Adopting Ruby 3 Types with RBS— You’ve heard Ruby 3.0 has some initial support for types by way of RBS, but what does it really mean? This is a deep dive into adding Ruby type signatures to existing projects and then using the Steep tool to do the type checking. This is the one post to read if RBS and type checking in Ruby intrigues you. Vladimir Dementyev |
Using Ruby 3.0 to Solve Advent of Code Problems— Advent of Code is a fantastic annual set of challenges designed to let developers experiment with new techniques, approaches, and languages. Brandon used this year’s challenges as a way to explore Ruby 2.7 and 3.0 features and has the first five days wrapped up so far. Brandon Weaver |
Writing a Ractor-Based Web Server: Part II— A follow up to an article we posted a few months ago where Kir created a scalable Web server in a reasonably small amount of Ruby thanks to ractors. Here he looks at the constraints of ractors and how he helped improve the ractor implementation too. Kir Shatrov |
The 2020 Ruby Advent Calendar 2020— An article per day about a Ruby gem. We first linked it when it only had a few items but it's now complete and there's lots to look through if you want to discover some new gems to try out. Best of Ruby Gems Series |
We'll be back on January 7 with our first normal issue of 2021 – see you then, and we hope you have a happy new year's period :-) |
|