Ruby was first released to the public in December 1995 by Yukihiro Matsumoto, known everywhere as "Matz". He had started work on it in February 1993, after looking for a scripting language that was more object-oriented than Perl and more consistent than Python, and not finding one. The reason why Matz designed Ruby for programmer happiness was personal: he believed a language should fit the way people think, so writing code feels natural rather than like satisfying a machine.
Origins in Japan
Matz worked as a programmer in Japan and had studied languages as a hobby for years. The name came from a conversation with a colleague: "coral" and "ruby" were both considered, and Ruby won, partly because it was the colleague's birthstone and partly as a friendly nod to Perl (pearl is June's birthstone, ruby July's). Ruby 1.0 appeared in December 1996, and for several years the community was almost entirely Japanese, with mailing lists and documentation in Japanese only.
That changed around 2000. Dave Thomas and Andy Hunt's book Programming Ruby, known as "the Pickaxe", gave English speakers their first full guide, and interest started to grow outside Japan.
Why Matz designed Ruby for programmer happiness
Matz has said many times in talks and interviews that Ruby's main goal is to help programmers be productive and enjoy programming. He took ideas he liked from several languages and combined them under the "principle of least surprise", meaning the language should behave the way an experienced Ruby user expects.
- Everything is an object, as in Smalltalk. Even integers and
nilrespond to methods, so5.times { ... }just works. - Blocks: anonymous chunks of code passed to methods, inspired by CLU's iterators and Smalltalk's blocks, used for loops, callbacks and resource handling.
- Perl's practicality: regex literals, string interpolation and many shortcuts for text work.
- Mixins through modules instead of multiple inheritance.
- Open classes and metaprogramming, which let libraries build expressive domain-specific languages.
A short Ruby example
class Book
attr_reader :title, :year
def initialize(title, year)
@title, @year = title, year
end
end
books = [Book.new("Programming Ruby", 2000), Book.new("Eloquent Ruby", 2011)]
books.select { |b| b.year > 2005 }
.each { |b| puts "#{b.title} (#{b.year})" }
Ruby on Rails and the 2000s boom
In 2004 David Heinemeier Hansson extracted a web framework from Basecamp, a project management tool built at 37signals, and released it as Ruby on Rails. Rails emphasised "convention over configuration" and showed developers they could build a working web application in an afternoon. It turned Ruby into one of the most talked-about languages of the decade and shaped later frameworks in other languages, including Laravel, Phoenix and Grails.
Companies built on Ruby include GitHub, Shopify, Basecamp, Airbnb in its early years, and Twitter before it moved key services to the JVM. Developer tools such as Homebrew, Vagrant, Chef, Jekyll, CocoaPods and the Metasploit framework are written in Ruby.
Versions timeline
| Year | Version | Notable change |
|---|---|---|
| 1995 | 0.95 | First public release in Japan |
| 1996 | 1.0 | First stable release |
| 2007 | 1.9 | YARV virtual machine, encoding-aware strings |
| 2013 | 2.0 | Keyword arguments, refinements |
| 2020 | 3.0 | Ractors, Fiber scheduler, RBS type signatures |
| 2021 | 3.1 | YJIT compiler from Shopify |
Major Ruby versions traditionally ship on 25 December, a habit the community treats as a Christmas present. Ruby 3.0 was tied to the "Ruby 3x3" goal of making Ruby three times faster than Ruby 2.0, and Shopify's YJIT has since become the main path to better performance. Ruby was also standardised as ISO/IEC 30170 in 2012.
Influence and legacy
Ruby's direct descendants include Crystal, a compiled language with Ruby-like syntax, and Elixir, created by former Rails core member José Valim, which brought Ruby's friendliness to the Erlang VM. CoffeeScript, Groovy and Swift also borrowed from its syntax and blocks. Its biggest legacy is cultural: the focus on readable code, testing (RSpec popularised behaviour-driven development) and developer experience spread far beyond Ruby itself. That is the clearest explanation of why Matz designed Ruby for programmer happiness: a happier programmer writes clearer code and keeps improving it.
Frequently asked questions
What does "MINASWAN" mean in the Ruby community?
It stands for "Matz is nice and so we are nice", a motto the community adopted to reflect Matz's friendly attitude. It encourages patience with beginners on forums and at conferences. It is part of why Ruby developed a reputation for a welcoming community.
Is Ruby only used with Ruby on Rails?
Rails is the most common use, but not the only one. Ruby powers command-line tools like Homebrew, configuration management with Chef, static site generators like Jekyll and security tools like Metasploit. Lighter web frameworks such as Sinatra and Hanami are also popular.
Is Ruby still fast enough for large applications?
Yes, for most web workloads. Shopify and GitHub run some of the world's largest Rails applications, and YJIT has noticeably improved performance in Ruby 3.x. Heavy computation is usually moved to background jobs or native extensions.







