Things Have History
Ruby: the language designed for the person, not the machine

programming-languages

Ruby: the language designed for the person, not the machine

Listen · 4:09

On February 24, 1993, Yukihiro Matsumoto opened an online chat with his colleague Keiju Ishitsuka and asked one question: what should they call the programming language they were going to build? There was no code yet — not a line. But Matsumoto had spent enough time with Perl’s line noise and Python’s indentation enforcement to form a clear opinion about what was missing from both: the feeling that the language was actually on your side. The new language needed a name before it needed syntax. Ishitsuka suggested Coral. Matsumoto chose Ruby. Pearl — the language he most wanted to improve upon — is June’s birthstone. Ruby is July’s. The joke was baked in from the first message.

Matsumoto was working in Shimane Prefecture in western Japan, at a company called Network Applied Communication Laboratory. He had graduated from Tsukuba University in 1990 with a degree in information science and a fixed hierarchy of what mattered in software design: the programmer first, the machine second. He had been stewing on the idea of a language organized around human convenience since graduate school. “I want to minimize my frustration during programming,” he told an interviewer — a sentence that sounds modest until you realize it was a manifesto.

Ruby 0.95 appeared on December 21, 1995, announced on Japanese domestic newsgroups. It was already complete in the ways that mattered: classes with inheritance, mixins, iterators, closures, exception handling, garbage collection. Every value was an object — integers, strings, nil, booleans, all of it. Matsumoto had borrowed that commitment from Smalltalk and refused to dilute it. In most languages of the time, the number 5 was a primitive, a bare piece of data. In Ruby, 5.times { puts "hello" } was valid from day one — the number had methods, like everything else. He had pulled from Perl, Smalltalk, Lisp, Eiffel, and Ada, but organized the synthesis around a single question: what is pleasant to write?

Ruby dominated Japan by 2000 and spent five years as a regional phenomenon almost nobody in the West knew existed. The gap closed through a single book. In 2000, Dave Thomas and Andy Hunt published Programming Ruby, nicknamed the “pickaxe book” for its cover — the first thorough English-language documentation the language had ever had. Thomas described his initial encounter with Ruby as a tightly wound spring releasing: he kept writing code and finding it did what he expected without ceremony. The English mailing list had existed since 1998; the pickaxe made it crowded.

The real inflection point came in 2005, when David Heinemeier Hansson extracted the web framework he had built at 37signals and released it as Ruby on Rails. Rails was so aggressively opinionated — convention over configuration, the database mapped to objects, scaffolding generated in seconds — that it turned Ruby into the dominant web language of the mid-2000s. Django, Laravel, and most of what followed owe their structural DNA to decisions Hansson made in Ruby first.

Matsumoto had designed a language around programmer happiness at a time when happiness was not considered a design criterion. It turned out to be one of the most important ones. Every language drafted since — Go’s readability, Python 3’s clarity, Swift’s expressiveness — implicitly answers the question Ruby forced into the open: how does this feel to write? The answer, it turns out, shapes whether anyone writes it at all.

Sources

Spot a mistake?

Wrong date, broken citation, a fact that doesn't hold? Tell us. It lands in an inbox a human reads and the post can be pulled or corrected.