Ruby
The language designed for programmer happiness.
- First released
- 1995
- Created by
- Yukihiro Matsumoto (Matz)
- Typing
- Dynamic and strong; everything is an object, including integers and nil
- File extensions
- .rb
What it is for
Ruby's stated design goal is programmer happiness, and it shows: methods read like sentences, blocks turn iteration into one-liners, and the distance between what you mean and what you type is unusually short. Rails rode that expressiveness to power an era of the web — GitHub, Shopify, Airbnb and Stripe all started on it — and Rails is still the fastest way many teams know to take a product from idea to production.
The language's center of gravity is Enumerable. Nearly every question you can ask a collection — filter it, group it, tally it, fold it — is a named method that takes a block, and fluency in that vocabulary is most of what separates Ruby that sings from Ruby that plods. The second pillar is open classes and mixins: behavior lives in modules and gets composed in, which is how Rails makes a database row respond to methods nobody wrote.
Ruby's trade is speed of thought for speed of execution. It will rarely win a benchmark, and monkey-patching's flexibility is a loaded tool in a large codebase. But YJIT has been closing the performance gap since 3.1, and for scripts, web apps, and the daily glue of a working programmer, Ruby remains one of the most pleasant ways to get something real running before lunch.
Where it came from
Yukihiro Matsumoto blended his favorite parts of Perl, Smalltalk and Lisp into a language he released publicly in 1995. His stated principle — that language design should optimize for the programmer's happiness rather than the machine's convenience — was unusual then and remains Ruby's brand today.
Ruby stayed mostly Japanese until the early 2000s, when the first English books and the Pragmatic Programmers' 'pickaxe' guide carried it west. The explosion came in 2004 with David Heinemeier Hansson's Ruby on Rails: convention over configuration made database-backed web apps startlingly fast to build, and for the next decade Rails was the default stack of the startup boom.
Ruby 1.9 (2007) rebuilt the interpreter for speed; 2.0 through 2.7 refined it. Ruby 3.0 (2020) shipped 'Ruby 3x3' — three times faster than 2.0 — plus Ractors for parallelism, and the YJIT compiler (written in Rust since 3.2) has kept the annual Christmas-day releases delivering real performance gains ever since.
What it is like to type
Ruby types smoothly: mostly lowercase words, dots and underscores, with the sigil work concentrated in @ instance variables, #{} interpolation and the block bars around |arguments|. Blocks mean typing { and } or do and end far more often than semicolons, and %w[] word arrays and &:symbol shorthands reward precise bracket work. The Enumerable seeds carry slightly lower three-star bars where chained blocks stack punctuation densely.
29 steps across 1 tours, from the basics to complete programs.