Reason #10 • January 10th, 2026

IRB - Interactive Ruby

Much has been said about static vs dynamic typing. Unfortunately it feels like many of the debates just end up with static-typing folks arguing "you need types for high-quality software" with dynamic-typing folks responding "no you don't", in more or less civilised language. It's seldom constructive or an actual pros-and-cons comparison.

Well, let's talk about one of the concrete pros of dynamically typed languages: enabling zero compromise read-eval-print loops (REPLs).

A REPL is an interactive programming environment that takes language expressions as input, evaluates them, and returns the result to the user. It's a fantastic way to explore a language, test out ideas and prototype code quickly. The term Read-Eval-Print hails from the early days of Lisp in the 1960s. Modern languages may call it an "interactive shell" or "interactive console" instead.

In Ruby, a REPL comes as part of the language in the form of irb (Interactive Ruby). Fire it up in your terminal, and you get a prompt where you can type any Ruby code and get immediate feedback.

This is more than just a neat tool. It's a way of life. A significant portion of the code I ship to production every day is molded and forged in the fires of irb. That's not to say I don't mainly write code in a text editor, but much of the experimentation, exploration and debugging happens inside the REPL.

Other languages may have REPLs. Even some statically typed languages attempt to provide them. But none feel so seamless and natural as Ruby's does. The whole runtime is a ball of clay ready to be shaped at your will. Everything is at your fingertips, and the straight-to-the-point syntax of Ruby means you can express your ideas on the fly without friction.

This is the way!

Reason #11 ?