Christmas Day, 1994: The Birth of Ruby
Zusammenfassung
Yukihiro “Matz” Matsumoto began writing the Ruby programming language on December 25, 1994. He chose Christmas Day deliberately, as a day free from work obligations that he could dedicate to a personal project. His stated goal was to create a programming language that made programmers happy — one that optimized for developer joy rather than machine efficiency. Ruby 1.0 was released in December 1996; Ruby on Rails (2004) brought it to international prominence. The language’s origin in a programmer’s holiday project explains much of its design philosophy.
The Design Goal
Yukihiro Matsumoto was a Japanese programmer who had been using Perl and Python and found both unsatisfying in different ways. He wanted a language that was object-oriented in a pure sense (everything is an object, including integers and strings), that provided high-level abstractions for common tasks, and that allowed multiple programming styles — object-oriented, functional, and imperative — without imposing any of them.
His design principle was the “principle of least surprise”: the language should behave in ways that an experienced programmer would expect, without requiring memorization of special cases. Every feature should have a consistent, predictable interface.
The name “Ruby” was chosen as a counterpart to Perl. Perl is named after a gemstone; Ruby is one month’s birthstone after June (the month associated with Pearl), following the convention while picking a new gem.
What Made It Different
Ruby introduced or popularized several features that influenced later languages:
Blocks and closures: Every method can accept a block of code as an argument, enabling a natural syntax for iteration, resource management, and callbacks. [1,2,3].each { |n| puts n } passes a block to the each method.
Open classes: Any class, including built-in classes like String and Integer, can be extended with new methods at runtime. 5.times { puts "hello" } works because Integer responds to the times message.
Symbol objects: Symbols (:name, :value) are lightweight string-like objects used as hash keys and identifiers — a distinction that clarifies code and improves performance.
Method missing: Classes can define behavior for undefined method calls, enabling proxy objects and domain-specific language construction.
These features were in Ruby before they appeared in Python, JavaScript, or most other mainstream languages.
Ruby on Rails
Ruby remained a niche language outside Japan until 2004, when David Heinemeier Hansson (DHH) extracted the web framework from the Basecamp project management application and released it as Ruby on Rails. Rails demonstrated that a full-featured web application could be built with dramatically less code than the Java enterprise frameworks then dominant, by following “convention over configuration” — the framework made sensible assumptions, reducing the amount of explicit setup required.
Rails influenced web development broadly: Django (Python), Laravel (PHP), and other frameworks adopted Rails conventions. The story of Ruby on Rails is part of the Rise of SaaS and the broader web development evolution.
Matsumoto designed Ruby to be fun. “I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy.” The Christmas origin of the language is a plausible indicator that the intention was genuine.