Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Выпущен релиз Ruby 2.0.0

Выпущен релиз (release) Ruby 2.0.0 - новое поколение этого превосходного языка программирования, приобретающего все большую популярность среди профессиональных программистов и веб-разработчиков.

Ruby 2.0.0-p0 is released

Новшества языка, ядро:

  • именованые аргументы методов (keyword arguments), которые придают дополнительную гибкость API
  • Module#prepend - новый способ расширения классов
  • литерал %i, который позволяет легко создавать массивы обозначений (symbols):
    %i{hurray huzzah whoop} #=> [:hurray, :huzzah, :whoop]
  • __dir__ - возвращает каталог текущего исполняющегося файла
  • кодировка UTF-8 по-умолчанию

Библиотеки:

  • Enumerable#lazy and Enumerator::Lazy, "ленивый" (возможно бесконечный) поток - каждое следующее значение получается только при очередной итерации, без вычисления всех элементов сразу. "Ленивые" итераторы.
  • Enumerator#size and Range#size, для "ленивого" вычисления размера
  • #to_h - новый метод, новое соглашение преобразования в Hash
  • новый движок регулярных выражений regexp - Onigmo (a fork of Oniguruma). This is a fork of the Oniguruma regexp engine used by 1.9, with a few more features. More details here. The new features seem Perl-inspired, with a good reference available here.
  • асинхронный перехват исключений (Asynchronous exception handling API)

Отладчик:

  • поддержка отладчика
  • поддержка DTrace, который позволяет диагностику в production
  • TracePoint - является улучшенным API трассировки

Производительность:

  • улучшенная производительность
  • GC optimization by bitmap marking
  • оптимизация Kernel#require которая делает загрузку Rails-приложений очень быстрой
  • оптимизированная VM (Virtual Machine) - улучшена диспечерезация методов (method dispatch)
  • оптимизированы операции с плавающей точкой

Создатели Ruby сообщают о том, что вводится Flonum и наибольшего прироста производительности можно будет добиться на 64-разрядных платформах и операционных системах.

Самостоятельно решил сравнить производительность с предыдущей версией: простейшие тесты, которые действительно подтвердили значительное увеличение производительности.

Кроме того, хотя это пока экспериментальная функция языка, 2.0.0 включает Refinements, которая добавляет новое понятие к модульному принципу Ruby.

Совместимость с предыдущими версиями

Разработчики также позаботились, чтобы сделать 2.0.0 совместимым с 1.9. Будет гораздо проще перейти с 1.9 на 2.0, чем это было с 1.8 на 1.9.

Благодаря работе разработчиков, использующих Ruby для создания своих приложений, некоторые популярные приложения, такие как Rails и tDiary, работали уже на предвыпускной (prerelease, release candidate) версии 2.0.0.

Стабильность

Обратите внимание на то, что в отличие от 1.9.0, 2.0.0 - стабильная версия, даже при том, что ее "TEENY" 0. Всем авторам библиотек строго рекомендовано поддерживать 2.0.0. Как упомянуто выше, будет сравнительно просто мигрировать от 1.9 до 2.0.

Ruby 2.0.0 готов к практическому применению и непременно улучшит Вашу жизнь Ruby.