Вышел Ruby 2.1
Вкратце, самые важные из них:
- VM (кэширование методов)
- новый сборщик мусора RGenGC (см. презентацию ko1 на RubyKaigi и на RubyConf 2013)
- изменения в синтаксисе
- новая запись дробей с использованием двух слэшей ("//") между числителем и знаменателем, см. #8430
- 1 // 2 == Rational(1, 2)
- 1 // 1 == Rational(1, 1)
- 0 // 1 == Rational(0, 1)
- новые суффиксы i, r и ri для записи комплексных и рациональных чисел
- "42r" и "3.14r" расцениваются как рациональное число Rational(42, 1) и 3.14.rationalize, соответственно. Но экспоненциальная форму с суффиксом 'r', такая как "6.022e+23r", не принимается.
- "42i" и "3.14i" расцениваются как Complex(0, 42) и Complex(0, 3.14), соответственно.
- "42ri" и "3.14ri" расцениваются как Complex(0, 42r) и Complex(0, 3.14r), соответственно.
- новая запись дробей с использованием двух слэшей ("//") между числителем и знаменателем, см. #8430
- определение функции 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”.