Learn Ruby - History, Background & Why Ruby
Series/Learn Ruby/Episode 1
Episode 1 of 23

Learn Ruby - History, Background & Why Ruby

This episode dissects the origins of Ruby: its birth by Yukihiro Matsumoto in 1993, the public release in 1995, its popularity through Ruby on Rails, and Ruby 4.0, which arrived on 25 December 2025 with ZJIT and Ruby::Box, plus the problems this language solves.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Introduction

Before diving into syntax, it's important to understand why Ruby was born and what problem it solves. A programming language is not just a collection of syntax; every language is born from its creator's frustration with the languages that came before. Ruby was born from the frustration of Yukihiro Matsumoto (affectionately known as Matz), who felt that no existing language was human enough.

This episode 1 dissects Ruby's history: from its birth in 1993, the first public release in 1995, its rise through Ruby on Rails in 2004, to the modern Ruby 4.0, which arrived exactly on the 30th anniversary of Ruby. You will also understand Ruby's position compared to traditional approaches like Java and Perl, and why its philosophy is so relevant to modern web development.

First, check your Ruby version to make sure we start from the same condition:

Check version and release history
ruby -v
ruby --copyright

The ruby -v command shows the installed version, while ruby --copyright shows Ruby's license, which is dual-licensed (Ruby License and BSD-2-Clause).

The Birth of Ruby: A Language for Humans

Matz and the Principle of Least Surprise

Matz started writing Ruby in 1993 in Japan. At the time he found Perl extremely expressive but with syntax that was too hard to remember, and Python clean but feeling rigid. Ruby was designed as a blend: Perl's expressive power with friendlier, more human readability.

Its core philosophy is called the principle of least surprise — a language should not surprise programmers who already understand how it works. This manifests in consistent design: almost everything is an object, everything is an expression, and method naming follows natural patterns. When you encounter a Ruby method that "feels right", that's not a coincidence, it's the result of design.

Public Release in 1995

Ruby was first publicly released in 1995 through a Japanese mailing list. A year later, an international community began to form. The name Ruby itself is a reference to a gemstone (the birthstone of Matz's colleague) and, coincidentally, is an anagram of Perl — the language that influenced it greatly.

RubyPhilosophy in a single expression
warna = "ruby"
puts "Nama #{warna} lahir dari batu permata"

Notice that there is almost no excessive punctuation. puts "Nama #{warna} lahir dari batu permata" reads like a human sentence — this is the hallmark of Ruby's design, which always prioritizes readability for developers.

The Rise: Ruby on Rails

The 2004 Boom

In 2004, David Heinemeier Hansson released Ruby on Rails, a full-stack framework for web development. Rails puts many convention-over-configuration decisions in place, so a simple blog application can be built in minutes. Rails' popularity catapulted Ruby into one of the most loved web languages in the world, especially after the community named its ecosystem a productive full-stack web framework.

A simple example of how fast Rails creates a new project:

Create a Rails app
gem install rails
rails new blog
cd blog
bin/rails server

The rails new blog command creates the entire application structure complete with database, router, and MVC folders. The bin/rails server command runs a local web server. This is Rails' main appeal: you focus on business logic, not on assembling boilerplate.

Modern Versions: from 3.0 to 4.0

After a decade of Rails, Ruby kept evolving. Ruby 3.0 (released 25 December 2020) introduced Ractor for true parallelism and RBS as a type signature system. Then Ruby 4.0 was released on 25 December 2025 — exactly Ruby's 30th anniversary — bringing ZJIT (a new generation of JIT), Ruby::Box (experimental isolated namespaces), and Ractor::Port as a new ractor communication API.

Main Ruby timeline
1993  Matz starts writing Ruby in Japan
1995  First public release
2004  Ruby on Rails explodes
2020  Ruby 3.0: Ractor and RBS
2025  Ruby 4.0: ZJIT and Ruby::Box

The timeline above shows one thing: after 30 years, Ruby is still actively moving. ZJIT and Ruby::Box will be discussed in depth in episodes 17 and 21.

Problems Solved by Ruby

Developer Happiness Over Machine Speed

Ruby's most fundamental contribution is putting developer happiness and productivity above machine speed. Where Java demands high verbosity and Perl sacrifices readability for power, Ruby chooses a humane middle path. As a result, the time to write and maintain code is much shorter — and in the long run, development costs are dominated by maintenance, not execution.

This is why Ruby remains relevant amid the modern ecosystem: for web and API workloads, the bottleneck is usually not CPU speed, but how fast a team can understand and change code. Ruby, with its Rails, answers exactly that problem.

The Principle of Least Surprise in Practice

You can feel the consequences of this principle from the very first line. A concrete example: in Ruby, almost every expression returns a value, and methods can be called without parentheses when unambiguous:

RubyExpressions that return a value
if RUBY_VERSION > "4"
  puts "Menjalankan Ruby 4.0"
else
  puts "Versi lebih lama"
end

The if block above is an expression: the value of the executed branch becomes the return value. This concept is simple, consistent, and unsurprising — that's the least surprise Matz meant. RUBY_VERSION > "4" compares Ruby's built-in version constant.

Info

The least surprise principle does not mean "always easy to predict", but rather "consistent with the understanding you've already built". Therefore, understanding the foundations (episodes 3-6) determines how quickly you can read other people's Ruby code.

Ruby's Position in the Modern Ecosystem

Today Ruby coexists with Python in data science, PHP in classic web, and Node.js in event-driven backends. Ruby's strength remains in web development productivity thanks to the Rails, Sinatra, and Hanami ecosystem, plus mature tooling like Rake, Puma, and RuboCop. Ruby 4.0 closes the old weakness on the performance side with the arrival of a maturing ZJIT and YJIT.

A deeper cross-language comparison, including when to choose Ruby over Python or Node.js, will be covered in episode 22. For now, what you need to hold onto: Ruby is a language designed so that development feels enjoyable without losing the robustness needed for production.

Conclusion

Episode 1 places Ruby in its historical context: a language born in 1993 from Matz's frustration with Perl and Python, publicly released in 1995, exploding through Rails in 2004, and still transforming up to Ruby 4.0 on 25 December 2025 with ZJIT and Ruby::Box.

Key takeaways:

  • Ruby was created by Yukihiro Matsumoto in 1993 and first publicly released in 1995.
  • Its core philosophy is the principle of least surprise and optimized for developer happiness.
  • Global popularity came through Ruby on Rails in 2004.
  • Ruby 3.0 (2020) brought Ractor and RBS; Ruby 4.0 (2025) brought ZJIT, Ruby::Box, and Ractor::Port.
  • Ruby prioritizes developer productivity over raw machine speed.
  • Almost everything in Ruby is an object and an expression that returns a value.

In the next episode, episode 2, we will discuss core concepts and the main architecture of Ruby — how CRuby turns source code into bytecode executed by the YARV VM, the role of Garbage Collection and GVL, two JITs (YJIT and ZJIT), the "everything is object" model, and Ruby distributions like CRuby, JRuby, and TruffleRuby. Preparing these concepts will make all the following episodes feel much easier.