Действительно крутые возможности в Ruby 1.9 - PullRequest
23 голосов
/ 27 октября 2009

С выпуском Ruby 1.9.2 на горизонте пришло время порадовать разработчиков Ruby 1.9. Какие приятные вещи вы можете сделать в Ruby 1.9, чего не можете сделать в Ruby 1.8?

Ответы [ 16 ]

3 голосов
/ 31 октября 2009

Улучшена поддержка регулярных выражений. Ruby 1.9 поддерживает именованные группы регулярных выражений - среди многих других улучшений - которые вы можете вспомнить позже в своем регулярном выражении. Дейв Томас приводит отличный пример .

3 голосов
/ 31 октября 2009

YARV. Новая Ruby VM в 1.9 предлагает новую современную виртуальную машину, которая значительно быстрее.

3 голосов
/ 27 октября 2009

Да, и это более чем в два раза быстрее. Еще быстрее, если вы создаете многопоточное приложение с большим количеством задержек ввода-вывода. Несмотря на всю работу, которую все еще делает для того, чтобы повысить производительность до 1,8 или исправить ее многопоточность и т. Д., Меня удивляет, что люди не в восторге от скорости 1,9 или его родные темы.

2 голосов
/ 08 апреля 2010

Лучшая поддержка Unicode и лучшая многопоточность.


Поддержка Unicode в 1.8 осуществляется через дополнительные гемы и доставляет мне бесконечные боли - было бы здорово получить полную языковую поддержку для этого. Некоторые люди жаловались на сложность реализации, но я думаю, что они никогда не использовали ICU в C ++!

Кроме того, было бы неплохо сделать "Hello"[3] и получить персонажа.


Улучшения производительности

Некоторые тесты показали значительные улучшения по сравнению с 1.8.6, с 1.9.1 - из-за новой VM (YARV) в Ruby Matz


Множество изящных маленьких функций ...

Если у вас есть копия «Рубин программирования» Дейва Томаса (AKA The Pick-axe book), раздел о встроенных классах и методах делает хорошую работу по маркировке изменений с 1,8 до 1,9.

Как насчет:

(a) новый синтаксис хэша: {: hello => "world"} можно сократить до {: hello: "world"}

(б) заказанные хэши !!

2 голосов
/ 31 октября 2009

Ruby 1.9 Fibers предлагает новую мощную конструкцию параллелизма. Ruby Fibers: 8 полезных материалов о новой функции параллелизма Ruby содержит ссылки на статьи, связанные с волокнами.

1 голос
/ 30 января 2013

В Ruby 1.9. + Также возможно объединить методы в несколько строк. Не кажется такой сумасшедшей функцией, но она позволяет сделать ваш код более читабельным, и это ключевая концепция Ruby.

Например:

@results = Clients
  .from_category(current_category)
  .selected_by(current_user.id)
  .activated
  .order("created ASC")
  .limit(1000)
  .map{ |e| "#{e.id} - {e.fullname}" }
...