Считается 24 февраля 1993 года днём создания языка Ruby. Стоит отметить, что в тот день было всего лишь придумано название для этого языка, хотя никакого кода для него не было написано. В онлайн чате между Мацумото и Keiju Ishitsuka рассматривалось два названия, это “Ruby (рубин)” и “Koral (корал)”. Было выбрано первое только потому, что это был камень по гороскопу одного из сотрудников Мацумото.

Первый публичный релиз Ruby 0.95 был объявлен на японской внутренней телеконференции 21 декабря 1995 года. Впоследствии ещё три версии Ruby были опубликованы в течение двух дней.

Уже на этом этапе разработки было много черт схожих с поздними релизами Ruby, включая объектно-ориентированное проектирование, классы с наследием, итераторы, замыкание, обработка исключений и сборка мусора.

После релиза Ruby 1.3 в 1999 году заработал первый список- рассылок ruby-talk на английском языке, который сигнализировал о росте интереса к языку за пределами Японии. В сентябре 2000 была напечатана первая книга на английском по программированию на Ruby.

Юкихиро Мацумото хотел создать новый язык, уравновешивающий функциональное программирование с императивным (процедурным) программированием. Мацумото заявил: "Мне нужен был скриптовый язык, который был более мощным, чем Perl, и более объектно-ориентированный, чем Python. Вот почему я решил разработать свой язык". Он часто говорил, что он "пытается сделать Ruby естественным, не простым", как сама жизнь.

Мацумото говорил, что Ruby разработан для производительности программиста и для радости, следуя принципам хорошего дизайна пользовательского интерфейса. Он подчеркивал, что дизайн системы необходим для человека, а не для компьютера: «Часто люди, особенно инженеры, фокусируются на машинах. Они думают, что «делая это, машина заработает быстрее. Делая это, машина будет работать более эффективно. Делая это, машина будет делать то-то, то-то, то-то. Они фокусируются на машине. Но по факту, мы должны фокусироваться на людях, о том, как люди заботятся о создании программных приложений. Мы мастера. Они рабы».

Мацумото описывал свой язык, как простой снаружи, но очень сложный внутри, как наше тело. Он хотел, чтобы каждый человек, который только начинал использовать Ruby, не чувствовал затруднения в освоения этого языка, он ориентировался на то, чтобы люди меньше тратили время на реализацию тех или иных программ (по сравнению с другими языками программирования), погружаясь в «дебри» кода. Правда есть в этой концепции один существенный недостаток: простая программа может использовать больше ресурсов компьютера или выполняться дольше, чем при написании подобных программ, например на Perl.

В Ruby всё является объектом. Для каждого объекта могут быть определены собственные свойства и действия. В объектно- ориентированном программировании свойства называются переменными экземпляра, а действия над ними - методы. Чисто объектно-ориентированный подход в Ruby чаще всего демонстрируется в коде, который производит действия над числами.

Во многих языках, числа и другие примитивные типы не объекты. Ruby следует влиянию Smalltalk, который дает методы и переменные экземпляра всем его типам. Это облегчает использование Ruby, т.е. правила, применяемые к объектам, применяются для всего Ruby.

Переменные Ruby содержат не сами объекты, а ссылки на них.