---
title: "Matz's Ruby syntax moratorium"
publication: "Ruby Weekly"
issue: 707
published_at: "2024-06-13"
canonical_url: "https://rubyweekly.com/issues/707"
---

Plus Ruby 3.3.3, progress on making Prism the default Ruby parser, and going async on Rails. |        

#​707 — June 13, 2024 

[Read on the Web](https://rubyweekly.com/issues/707)  

Together with [![Makandra\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_250,h_100/e_make_transparent/co_white,e_outline:7/wrexuzvpv8efeghv2ucz.png)](https://railslts.com/?utm_campaign=ruby-weekly-sponsoring&utm_source=newsletter&utm_medium=paid&utm_term=rails-lts)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mguzu7o28oyfg9swq7n0.jpg)](https://www.ruby-lang.org/en/news/2024/06/12/ruby-3-3-3-released/)  

[Ruby 3.3.3 Released](https://www.ruby-lang.org/en/news/2024/06/12/ruby-3-3-3-released/) — The latest production-happy release of Ruby is here with no new features, but several updates to important dependencies (e.g. RubyGems and REXML) and bug fixes. A safe and sensible update to hop on. 

Takashi Kokubun   

[Matz Announces a Syntax Moratorium Until 3.4](https://bugs.ruby-lang.org/issues/20575) — At the end of RubyKaigi, Matz announced that there would be no syntax changes (outside of bug fixes) until Ruby 3.4 is released later this year. 

Yukihiro 'Matz' Matsumoto   [![\](https://copm.s3.amazonaws.com/0e7d4a9f.png)](https://railslts.com/?utm_campaign=ruby-weekly-sponsoring&utm_source=newsletter&utm_medium=paid&utm_term=rails-lts) 

[Rails LTS by Makandra: Support for Old Rails Versions](https://railslts.com/?utm_campaign=ruby-weekly-sponsoring&utm_source=newsletter&utm_medium=paid&utm_term=rails-lts) — Get support for old Rails versions with Rails LTS: Gem replacement, compatibility with modern Ruby versions and above all: peace of mind knowing your application is secure. We are Makandra: Rails experts since 2009 and Rails Foundation member! 

Rails LTS by makandra sponsor   

[Let's Switch Ruby's Default Parser to Prism.. _Eventually_](https://bugs.ruby-lang.org/issues/20564) — Kevin Newton’s [work on the _Prism_ Ruby parser](https://kddnewton.com/2024/01/23/prism.html) has been hugely inspirational and it’s now a well-tested, portable, and ready for production project.. so should it become Ruby 3.4’s default parser? _Not so fast_, says Matz, who wants to ensure it’s well tested and meets his quality requirements first. 

Kevin Newton and Matz   

- 📅 [RubyConf 2024](https://rubyconf.org/) takes place in Chicago this November – [its call for papers](https://sessionize.com/rubyconf-2024/) is now open if you'd like to speak. Submissions due by July 8.
- 🤪 Have you ever tried [using keyword arguments in indexing/`[\]` methods](https://blog.saeloun.com/2024/06/10/ruby-3-4-throws-syntax-error-for-passing-keyword-in-index/)!? It used to work! But it breaks Ruby 3.3 and Ruby 3.4 won't let you do it at all.
- 🤖 [The AI Engineer World's Fair](https://www.ai.engineer/worldsfair) takes place in SF later this month (and I'm going!) You can [get 30% off tickets](https://ti.to/software-3/ai-engineer-worlds-fair/discount/COOPERPRESS) or register for the free livestream on [the homepage](https://www.ai.engineer/worldsfair).  

📄 Articles, Tutorials & Videos  

[Async Ruby on Rails](https://thoughtbot.com/blog/async-ruby-on-rails) — Ruby and Rails don’t operate asynchronously by default, but there are ways to add some async flavor to your apps, such as with the [async reactor.](https://github.com/socketry/async) Using `async` as well as other techniques to make your Rails apps a little smoother are shown off here. 

Matheus Richard   

[Replacing System Tests with Unit Tests](https://everydayrails.com/2024/06/01/replacing-system-tests-with-unit-tests.html) — After DHH declared [‘system tests have failed’](https://world.hey.com/dhh/system-tests-have-failed-d90af718), is it time to delete them all? Probably not! But replacing some system tests with unit tests isn’t a bad idea. 

Aaron Sumner   

[On Heroku? Read Our Ultimate Guide to Autoscaling](https://judoscale.com/guides/autoscaling-heroku-ultimate-guide?ref=RubyWeekly) — Learn the ups and downs 😎 of autoscaling in our illustrated guide. (TLDR: Don’t use Heroku’s autoscaler!) 

Judoscale sponsor   

[Adding GPT-4o to a Rails 7 App with Turbo Streams](https://hi.teloslabs.co/post/add-gpt-4o-to-your-rails-7-app-get-started-with-turbo-streams) — It’s a pretty straightforward integration and Turbo Streams can help you maintain the ChatGPT streaming text vibe. 

Luigi Rojas   

📄 [Upgrading a Rails 6.1 App to Rails 7.0](https://thoughtbot.com/blog/upgrade-rails-6-to-rails-7) – More detail than you might expect. Stefanni Brasil 

📄 [Implementing Dark Mode with Tailwind and Stimulus](https://nts.strzibny.name/dark-mode-tailwind-stimulus/) Josef Strzibny 

📺 [How DragonRuby Lets You Move Faster Than Any Other Game Engine](https://www.youtube.com/watch?v=Gd8m14bDDw4) Game Engineering Podcast 

📄 [Understanding Kamal's Healthcheck Settings](https://nts.strzibny.name/kamal-healthcheck-settings/) Josef Strzibny 

📄 [How to Disable Rails Forms' `.field_with_errors`](https://railsdesigner.com/disable-field-with-errors/) Rails Designer 

🎧 [Ruminating on Ruby Enumerators](https://bikeshed.thoughtbot.com/428) The Bike Shed Podcast  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ukihd5ofebj9ka5rugtl.jpg)](https://github.com/soutaro/rbs-inline)  

[RBS::Inline: Write RBS Type Declarations Inline](https://github.com/soutaro/rbs-inline) — If the idea of writing type annotations (as supported by RBS in Ruby 3.0+) interests you but writing separate RBS files seems clunky, this could provide you with another option. 

Soutaro Matsumoto   

[RSpec::Wait 1.0: Wait for Conditions in RSpec](https://github.com/laserlemon/rspec-wait) — More easily test asynchronous or slow interactions by, well, _waiting._ 

Steve Richert   

[Stale Thinking Causes Teams to Thrash—You Need a Breath of Fresh Air ☀️](https://link.testdouble.com/d58) — Get fresh perspective from product managers who’ve been-there-done-that across tons of domains, use cases, and problems. 

Test Double sponsor   

[GemUpdater 7.2: Update Gems in Your Gemfile and Fetch Their Changelogs](https://github.com/MaximeD/gem_updater) — The idea is that you don’t just want to update gems en masse, you want to know _how_ they changed too. Now with Ruby 3.3 support. 

Maxime Demolin   

[Timecop: The Time Travel/Time Freezing Library](https://github.com/travisjeffery/timecop) — Provides a unified method to mock `Time.now`, `Date.today`, `DateTime.now`, and `Process.clock_gettime` in a single call. 

Jeffery and Trupianob   

[Administrate: A Rails Engine for Building Flexible Admin Dashboards](https://administrate-demo.herokuapp.com/) — Automatically generate admin dashboards to enable users to edit data for any model in a Rails app. There’s [a demo here.](https://administrate-demo.herokuapp.com/admin) ([GitHub repo.](https://github.com/thoughtbot/administrate)) 

thoughtbot, inc.   

- 🦆 [ruby-duckdb 1.0](https://github.com/suketa/ruby-duckdb) – Ruby bindings for the DuckDB database system.
- [Neovim Ruby 0.10](https://github.com/neovim/neovim-ruby) – Ruby support for [Neovim](https://neovim.io/) _(now DHH's editor of choice!)_
- [httplog 1.7](https://github.com/trusche/httplog) – Log outgoing HTTP requests. Adds Faraday 2+ support.
- [ruby-macho 4.1](https://github.com/Homebrew/ruby-macho) – Pure-Ruby library for parsing macOS Mach-O files.
- [Torch.rb 0.16](https://github.com/ankane/torch.rb) – Libtorch-powered deep learning for Ruby.
- [Rover 0.4](https://github.com/ankane/rover) – Simple, powerful data frames for Ruby.
- [reCAPTCHA 5.17](https://github.com/ambethia/recaptcha) – Ruby helpers for reCAPTCHA.
- [Refer 0.2](https://github.com/excid3/refer) – Referral/affiliate codes for Rails apps.
- [Ruby OpenAI 7.1](https://github.com/alexrudall/ruby-openai/releases/tag/v7.1.0) – Use OpenAI's APIs from Ruby.
- [Octokit 9.1](https://github.com/octokit/octokit.rb) – Ruby toolkit for the GitHub API.         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
