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