The History of Ruby

Share this article

The History of Ruby
rubygrows

The Ruby language is 21 years old. Its strong community and adoption by the open source community has kept this language steady and improving. Ruby has changed drastically over the years. It has grown from a young child to the strong adult that it is today. But it didn’t get that way overnight. Let’s take a look at the life of the Ruby programming language.

Note: This article is packed with metaphors (language to human), so be prepared.

Birth (1993)

Ruby was born in 1993, conceieved in a discussion between Yukihiro Matsumoto (“Matz”) and a colleague. They were discussing the possibility of an object-oriented scripting-language. Matz stated in ruby-talk:00382 that he knew Perl, but did not like it very much; that it had the smell of a “toy” language. He also discussed that he knew Python, but didn’t like it because it wasn’t a true object-oriented programming language.

Matz wanted a language perfect for his needs:

  • Syntactically Simple
  • Truly Object-Oriented
  • Having Iterators and Closures
  • Exception Handling
  • Garbage Collection
  • Portable

Having looked around and not found a language suited for him, Yukihiro Matsumoto decided to create his own. After spending several months writing an interpreter, Matz finally published the first public version of Ruby (0.95) to various Japanese domestic newsgroups in December, 1995. You can still download the infant version of Ruby here at your own risk.

Toddler Years

Ruby became a toddler (n.: a young child who is just beginning to walk) when Ruby 1.0 was released in December, 1996. Ruby 1.1 shortly followed in August of 1997, and the first stable version of Ruby (1.2) was released in December of 1998.

At this point in time, Ruby was localized to Japan only, but it would soon spread to other parts of the world…

Primary School Years

In 1998, Matz created a simple English homepage for Ruby. However, Ruby was still very localized to Japan. In trying to further this expansion, the first English language Ruby mailing list, Ruby-Talk, was created. Ruby was beginning to spread beyond Japan.

Ruby-Talk is still very active today, and you can subscribe to it here.

In October of 1999, Yukihiro Matsumoto and Keiju Ishitsuka wrote the first book on the Ruby programming language: The Object-oriented Scripting Language Ruby. Ruby was beginning to get very popular in Japan, and spreading rapidly to English-speaking countries.

In 2001, the first English book on Ruby, Programming Ruby (“The Pickaxe”), was published in 2001. With this new information on Ruby, many more people were able to learn the language.

Ruby 1.8 was released in 2003. This release made large amounts of changes to the agile 10-year-old language. Including:

  • Duck Typing (looks like a duck, swims like a duck, quacks like a duck: it’s a duck)
  • Fully Qualified Names (Foo::Bar)
  • Native YAML Support
  • WEBrick
  • StringIO
  • open-uri
  • PP (Pretty Printer for Hash#inspect)
  • ruby -run (UNIX commands for all! ruby -run -e mkdir foo)
  • And many other minor features

In 2004, RubyGems was released to the public. Good things started happening next…

The Rebellious Teenager

In 2005, Ruby use took off. The reason: Ruby on Rails. This new framework changed the history of rapid web development. Ruby had been used in the past to write CGI scripts, but Ruby on Rails took this a step further. Rails has a Model-View-Controller structure that focuses on “convention over configuration”, which is great for developing web applications.

People loved it. So much so that, the Ruby community was almost taken over by the Rails framework. Ruby in turn became very popular.

In March of 2007, Ruby 1.8.6 was released, with 1.8.7 following in May of 2008. At this point, Ruby was at its peak. Mac OS X even began shipping with it in 2007. At this point, Ruby was 15 years old.

Ruby 1.9 (development version) was released in December, 2007, then stabilized 4 years later (2011) as Ruby 1.9.3. Ruby 1.9.3 was the production version of 1.9.2. These versions brought new changes to the language, such as:

  • Significant speed improvements
  • New methods
  • New hash syntax ({ foo: 'bar' })
  • RubyGems included
  • New Socket API (IPv6 support)
  • Several random number generators
  • Regular Expression improvements
  • File loading performance improvements
  • Test::Unit Improvements
  • New encoding support
  • More string formatting tweaks
  • And so much more

Ruby was making the transition from a rebellious teenager to a strong adult as it turned 18 with Ruby 1.9.3.

Strong Adult

Ruby 2.0.0 was released in February 2013 and brought many stabilizing changes to the language. Among them are:

  • More speed improvements
  • Refinements (safe monkey patching)
  • Keyword arguments
  • UTF-8 by default
  • New regular expressions engine
  • Optimized garbage collection
  • The addition of built-in syntax documentation (ri ruby:syntax)

Unlike 1.9.x, which broke numerous gems with its changes, 2.0.0 was almost completely backwards compatible with 1.9.3. In addition, Heroku, one of the leading Ruby/Rails hosts upgraded to 2.0.0 quickly, causing earlier than usual adoption by new and existing projects. The Ruby language was (and is) in its golden age.

Ruby 2.1.0 was released on Christmas day of 2013. It brought several minor changes to the language. But the biggest news of 2.1.0 was semantic versioning, a way to properly version a project without breaking dependencies by accident.

Ruby 2.1.1 was released on Ruby’s 21st birthday (February 24, 2014). Ruby is now legally allowed to drink in the US (not that we’d want it to). This version was mainly speed improvements and bugfixes. Shortly after 2.1.1, Ruby 2.1.2 was released in May of 2014. 2.1.2 consists of more bugfixes and is the current stable version of Ruby.

The Future

Ruby is a great language. Matz wanted a programming language that suited his needs, so he built one. This is an inspiring story of software development: if you can’t find something that you like, program it yourself. From 0.95 to 2.1.2, Ruby has struck the awe of those who wished to program the way they wanted, not the way the machine wanted.

We can’t know the future of the Ruby language, but we can predict it based on the past. I believe that the Ruby language, and its fantastic community will continue furthering the language above and beyond what others think is possible, and projects built using it will do the same.

Frequently Asked Questions (FAQs) about the History of Ruby

What was the inspiration behind the creation of Ruby?

Ruby was created by Yukihiro “Matz” Matsumoto in the mid-1990s in Japan. Matz was inspired by his desire to create a scripting language that was more powerful than Perl, and more object-oriented than Python. He wanted a language that was natural, not simple, mirroring the complexity and unpredictability of life. This led to the creation of Ruby, a language that is designed to make programming fun and flexible for the developer.

How did Ruby gain popularity?

Ruby gained popularity with the release of the Ruby on Rails framework in 2005. This framework made it easier to develop web applications, leading to a surge in Ruby’s popularity. Many tech companies, including Twitter, Airbnb, and Shopify, started using Ruby on Rails for their platforms, further boosting Ruby’s reputation in the programming world.

What are some unique features of Ruby?

Ruby is known for its elegant syntax that is easy to read and write. It is a fully object-oriented language, meaning everything in Ruby is an object. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming. Ruby also has a dynamic type system and automatic memory management.

How has Ruby evolved over the years?

Since its creation, Ruby has undergone several revisions and updates. The most significant update was Ruby 1.9, released in 2007, which introduced many new features and performance improvements. This was followed by Ruby 2.0 in 2013, which further enhanced the language’s functionality and performance. The latest stable release is Ruby 3.0, released in 2020, which focuses on improving performance and concurrency.

What is the future of Ruby?

The future of Ruby looks promising. The Ruby community is active and constantly working on improving the language. The release of Ruby 3.0, with its focus on performance and concurrency, shows that Ruby is evolving to meet the demands of modern web development. Moreover, the popularity of Ruby on Rails continues to drive interest in Ruby.

How does Ruby compare to other programming languages?

Ruby is often compared to languages like Python and Perl. While each of these languages has its strengths, Ruby stands out for its elegant syntax and its focus on developer happiness. It is a versatile language that can be used for a wide range of applications, from web development to data analysis.

What are some notable applications built with Ruby?

Some of the most notable applications built with Ruby include Twitter, Airbnb, Shopify, and GitHub. These applications showcase the power and flexibility of Ruby, and its ability to handle large-scale, high-traffic web applications.

What is Ruby on Rails?

Ruby on Rails, often just called Rails, is a web application framework written in Ruby. It follows the Model-View-Controller (MVC) architectural pattern and emphasizes Convention over Configuration (CoC) and Don’t Repeat Yourself (DRY) principles. Rails has been instrumental in Ruby’s popularity, making it easier to build complex web applications.

How can I start learning Ruby?

There are many resources available to start learning Ruby. You can start with the official Ruby documentation, which provides a comprehensive guide to the language. There are also many online tutorials and courses available. It’s recommended to have a basic understanding of programming concepts before diving into Ruby.

Why should I choose Ruby for my next project?

Ruby is a great choice for web development due to its elegant syntax, object-oriented nature, and the powerful Ruby on Rails framework. It’s also known for its focus on developer happiness, making it a pleasure to work with. Moreover, Ruby has a vibrant community that is always ready to help, and a wealth of libraries and tools to speed up development.

Jesse HerrickJesse Herrick
View Author

Jesse Herrick is an avid Ruby developer who specializes in web development. He is a back-end developer at Littlelines and loves programming. You can read his personal blog at: https://jesse.codes.

GlennGhistoryruby
Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week