---
title: "All the language changes in Ruby 3.4"
publication: "Ruby Weekly"
issue: 734
published_at: "2025-01-16"
canonical_url: "https://rubyweekly.com/issues/734"
---

Plus Ruby 3.3.7, building desktop apps in Ruby, and Bundler 2.6's checksum verification. |        

#​734 — January 16, 2025 

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

Together with [![Crunchy Data\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_430,h_100/e_make_transparent/co_white,e_outline:7/xyflkz7n00elwtgja9ne.png)](https://www.crunchydata.com/case-studies/ynab?utm_source=cp-rb-011625)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sbf3yzayblmtggdqimgk.jpg)](https://rubyreferences.github.io/rubychanges/3.4.html)  

[Zverok's Guide to Ruby 3.4's Language Changes](https://rubyreferences.github.io/rubychanges/3.4.html) — Each year, Victor blesses us with a mammoth roundup of changes that arose in the Ruby _language_ in the latest major version. Ruby 3.4 wasn’t one of the largest leaps forward in this sense, but he still has lots of great examples here, making this a must read/skim. 

Victor Shepelev   

[YJIT 3.4: Even Faster and More Memory-Efficient](https://railsatscale.com/2025-01-10-yjit-3-4-even-faster-and-more-memory-efficient/) — YJIT (Yet Another Ruby JIT) is an optimizing compiler built into CRuby since Ruby 3.1 and it got even faster in Ruby 3.4 (by 5-7%). Maxime, who started Shopify’s YJIT team, explains the improvements as well as new options and techniques you can use to get more out of it. 

Maxime Chevalier-Boisvert   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/7be05801.png)](https://www.crunchydata.com/case-studies/ynab?utm_source=cp-rb-011625) 

[Optimize Postgres Performance and Reduce Costs with Crunchy Bridge](https://www.crunchydata.com/case-studies/ynab?utm_source=cp-rb-011625) — YNAB (You Need A Budget) switched to fully managed Crunchy Bridge for Postgres and experienced a 30% performance increase and 10% cost reduction. YNAB enjoys seamless scaling, high availability, and expert support for a better Postgres experience. 

Crunchy Data sponsor   

**IN BRIEF:** 

- 📢 [Ruby 3.3.7 has been released.](https://www.ruby-lang.org/en/news/2025/01/15/ruby-3-3-7-released/) It's a minor release with no new features but [a fair few bugfixes.](https://github.com/ruby/ruby/releases/tag/v3_3_7)
- 🚅 [We Use Rails](https://weuserails.com/) is a site attempting to categorize as many webapps built atop Rails as possible. You can submit your own, too.
- 📕 Joe Masilotti is working on a Hotwire Native book for Pragmatic Programmers and [it's now available in beta form.](https://masilotti.com/hotwire-native-book-in-beta/)   

▶[How To Build Basic Desktop Applications in Ruby](https://www.youtube.com/watch?v=TTSqRdTVtDY) — The recently released recording of a workshop given at RubyConf 2024 by the creator of the [Glimmer](https://github.com/AndyObtiva/glimmer) suite of Ruby DSL-driven desktop and Web app building frameworks. We’ll have more on Glimmer in a future issue, but this is a great way to get started. 

Andy Maleh   

[Why Bundler Checksums Are a Security Game-Changer](https://mensfeld.pl/2025/01/the-silent-guardian-why-bundler-checksums-are-a-game-changer-for-your-applications/) — As the source of many of our code’s dependencies, the RubyGems system is a potential vector for security issues. Bundler 2.6 introduced checksum verification as a way to at least ensure the gems you install are identical to the ones recorded in `Gemfile.lock`. 

Maciej Mensfeld   

[What is `it` (in Ruby 3.4)?](https://kevinjmurphy.com/posts/what-is-it-in-ruby-34/) — A quick look at one of a minor addition to Ruby 3.4, but one that might change your everyday code because `it` certainly _looks_ nicer than `_1` or `|i| i`. 

Kevin Murphy   

[Escaping Ruby's Gem:SafeMarshal Sandbox](https://nastystereo.com/security/ruby-safe-marshal-escape.html) — `Gem::SafeMarshal` was introduced to RubyGems as a way to ‘safely’ load marshalled specs from gems. Of course, that means folks will set out to see if it really _is_ safe. 

Luke Jahnke   

[Back Away from the Backlog 🛑](https://link.testdouble.com/96j) — Your product doesn’t need bloat. Simplifying drives bigger outcomes, happier teams, and real impact. Learn how to start now. 

Test Double sponsor   

📄 [How to Set Up a Basic Sinatra + React Webapp](https://gist.github.com/peterc/91d9bc6397eb93e65897c1826f35e345) – The barebones steps needed to spin up a Sinatra backend serving up a React frontend using Vite and Tailwind for building basic Ruby + React apps. Peter Cooper 

📄 [Lessons Learned Migrating My SaaS App to Rails 8](https://pawelurbanek.com/rails-8-features) – Comparing Kamal to Dokku, the removal of Redis, and using a custom compressor for Rails’ cache. Paweł Urbanek 

📄 [What's Involved in Getting a 'Modern' Terminal Setup?](https://jvns.ca/blog/2025/01/11/getting-a-modern-terminal-setup/) Julia Evans  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/pmpli9tdcjidfyzy02nl.jpg)](https://thoughtbot.com/blog/superglue-1-0-react-rails-a-new-era-of-thoughtfulness)  

[Superglue 1.0: A Way to Bring Rails and React Together](https://thoughtbot.com/blog/superglue-1-0-react-rails-a-new-era-of-thoughtfulness) — [Superglue](https://thoughtbot.github.io/superglue/) is a library for bringing Rails and React closer together in a way that feels as natural as Rails’ default Hotwire and Stimulus-based approach to the frontend. 

Thoughtbot   

[SyntaxFinder: Analyze Your Ruby Scripts with Prism](https://github.com/ko1/syntax_finder) — A new tool being worked on by Ruby core team member ko1 to find syntax patterns in Ruby code using the new Prism Ruby parser. 

Koichi Sasada   

[☢️ Tech Debt, Performance or Dev Process Problems in Your App?](https://sinaptia.dev/services/staff-augmentation/) — Our Application Assessment service can help you figure out how to deal with them. 

SINAPTIA sponsor   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xtdxebjbjep3ksyimtup.jpg)](https://github.com/campsite/campsite)  

[Campsite: A Large Rails + JavaScript SaaS App Goes 'Source Available'](https://github.com/campsite/campsite) — [Campsite](https://www.campsite.com/) is/was a webapp offering something akin to a Slack-style interface to forum-like posts for team communication. It’s a good example of a fully fledged, commercial Rails app with lots of moving parts and a surprising number of best practices, if you’d like to see how such apps are built. _(Note: They say it’s now ‘open source’ but it’s really Creative Commons NonCommercial licensed.)_ 

Campsite Team   

[Yake 1.2: A DSL for Writing _AWS Lambda_ Handlers Rake-Style](https://github.com/amancevice/yake) — It includes the ability to write Sinatra style routes and feels like an idiomatically Ruby-ish way to work with AWS’s serverless platform. 

Alexander Mancevice      

📰 Classifieds   

Protect your SaaS app with advanced device fingerprinting from [WorkOS Radar](https://workos.com/radar?utm_source=cpruby&utm_medium=newsletter&utm_campaign=q12025). Stop fake signups, free tier abuse, bot attacks and brute force attempts today. 

--- 

💡 Discover and share Ruby & Rails snippets with CodeSnips. Follow coders, get inspired, and build your next app faster. [Visit codesnips.io](https://codesnips.io/).     

- [Sidekiq::Throttled 1.5.2](https://github.com/ixti/sidekiq-throttled) – Concurrency and rate-limit throttling for Sidekiq.
- 🗓️ [Simple Calendar 3.1](https://github.com/excid3/simple_calendar) – Simple calendar rendering for Rails apps.
- [MiniMagick 5.1](https://github.com/minimagick/minimagick/releases/tag/v5.1.0) – A lighter/low-memory replacement for RMagick.
- [RuboCop 1.70](https://github.com/rubocop/rubocop/releases/tag/v1.70.0) – The popular static code analyzer and formatter.
- [Rodauth 2.38](https://github.com/jeremyevans/rodauth) – Advanced auth framework. ([Changelog.](https://github.com/jeremyevans/rodauth/blob/master/CHANGELOG))
- [EngTagger 0.4.2](https://github.com/yohasebe/engtagger) – English part-of-speech tagger library.
- [reCAPTCHA 5.19](https://github.com/ambethia/recaptcha) – Ruby helpers for reCAPTCHA.
- [Keynote 2.0](https://github.com/evilmartians/keynote) – Flexible presenters for Rails.
- [ActiveScaffold 4.0](https://github.com/activescaffold/active_scaffold)         

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/).
