Была выпущена новая стабильная версия Ruby. Ruby 2.0.0 добавляет аргументы ключевых слов, новые способы расширения классов и дополнительные функции во встроенных библиотеках.
Выпуск Ruby 2.0.0 был приурочен к 20-летию со дня рождения языка Ruby. Первый коммит был сделан его создателем Юкихиро Мацумото 24 февраля 1993 года. Чтобы узнать больше о его происхождении, смотрите, как Руби исполняется 18 лет.
Согласно анонсу Ruby 2.0.0. на сайте Ruby, добавление аргументов ключевых слов придает гибкость дизайну API. Аргументы ключевых слов (именованные параметры) заменяют метод, используемый до сих пор в Ruby для использования словаря имен и значений для передачи аргументов методам. Еще одним изменением языка является переход на UTF8 в качестве кодировки по умолчанию.
Существует несколько изменений во встроенных библиотеках, начиная с ленивых перечислимых классов. Это позволяет избежать создания промежуточных массивов и экономит время на разработке и определении размеров коллекций. Существует также API асинхронной обработки исключений.
Все еще находясь на ленивом фронте, Руби теперь имеет обратную связь с ленивым поколением. С самого начала обратные пути были массивами строк, и всякий раз, когда возникало исключение, строки генерировались сверху вниз, что может быть медленным. Теперь вместо строк используются обратные пути. Они легкие и быстрые, и строки генерируются только тогда, когда это действительно необходимо.
Поддержка отладки была улучшена с добавлением поддержки DTrace, которая позволяет проводить диагностику во время выполнения в рабочей среде, и TracePoint, которая является улучшенным API трассировки.
Повышение производительности включает оптимизацию GC с помощью растровой маркировки, оптимизацию виртуальной машины и оптимизацию ядра#require, что делает запуск Rails очень быстрым.
В новую версию были внесены некоторые экспериментальные изменения, включая уточнения, новый способ обработки модульности и то, что, по мнению наблюдателей Ruby, станет заменой методам исправления обезьян, используемым в настоящее время в Ruby.
Марк-Андре Лафорт опубликовал список изменений с момента выпуска версии 1.9.3. в новостях Ruby на Github.