Спецификации Ruby обновились до версии 2.1.0. В новой версии языка программирования сделано несколько эволюционных изменений. В неофициальных бенчмарках на Rails версия 2.1 показывает результат примерно на 20% выше, чем 2.0, которая, в свою очередь, на 60-70% быстрее 1.9.3.
Вкратце, самые важные из них:
- VM (кэширование методов)
- новый сборщик мусора RGenGC (см. презентацию ko1 на RubyKaigi и на RubyConf 2013)
- изменения в синтаксисе
- новая запись дробей с использованием двух слэшей ("//") между числителем и знаменателей, см. #8430
- новые суффиксы i, r и ri для записи комплексных и рациональных чисел.
- определение функции def теперь возвращает символ её названия вместо nil, см. #3753
- уточнения #8481 #8571
- Bignum
- использует GMP (GNU Multiple Precision Arithmetic Library) для ускорения операций над большими числами, см. #8796
- добавлен метод Array#to_h — создание хэша из массива
- String#scrub #8414
- Socket.getifaddrs #8368
- RDoc 4.1.0 и RubyGems 2.2.0
- “literal”.freeze теперь оптимизирован #9042
- добавлен Exception#cause #8257
- обновлены библиотеки JSON, NKF, rake, RubyGems, и RDoc.
- удалена библиотека curses. #8584
Ruby — высокоуровневый язык для быстрого и удобного объектно-ориентированного программирования. Его создатель Юкихиро Мацумото постарался совместить лучшие черты своих любимых языков Perl, Python, Smalltalk, Eiffel, Ada и Lisp в поисках грамотного баланса между функциональным и императивным программированием. Целью было создание языка, более мощного, чем Perl, и более объектно-ориентированного, чем Python. Основное назначение Ruby — создание простых и в то же время понятных программ, где важна не скорость работы программы, а малое время разработки, понятность и простота синтаксиса.
Мацумото занимается разработкой Ruby до сих пор, и версия 2.1.0 — это его рождественский подарок всем программистам.
Более подробный список изменений в 2.1.0 см. здесь, а также в презентации “All about Ruby 2.1”.
Автор: alizar