LINUX.ORG.RU

Ruby 3.0.0

 ,

Ruby 3.0.0

1

3

Вышел новый релиз динамического рефлективного интерпретируемого высокоуровневого объектно-ориентированного языка программирования
Ruby версии 3.0.0. По заявлению авторов, зафиксировано утроение производительности (по тесту Optcarrot), таким образом достигнута поставленная в 2016 году цель, описанная в концепции Ruby 3x3.

Для достижения этой цели в ходе разработки уделили внимание таким направлениям:

  • Performance — производительность
    • MJIT — сокращение времени и уменьшение размера генерируемого кода
  • Concurrency — обеспечение параллелизма
    • Ractor — начальная поддержка новой модели акторов
    • Fiber Scheduler — планировщик fiber-потоков
  • Typing — статический анализ кода
    • RBS — инструмент для аннотации типов
    • TypeProf — новый анализатор типов

>>> Подробности

★★★★★

Проверено: cetjs2 ()
Последнее исправление: atsym (всего исправлений: 19)

Ответ на: комментарий от DILIN

Вот на опеннете есть график про этот 3х кратный прирост. Я вот не много не пойму, к примеру ставлю рельсы и что они будут в 3 раза быстрее работать ?

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Троекратное улучшение производительности заявляется только на jit, и только в некоторых тестах. При этом для рельсов jit еще не готово («stay tuned for 3.1») Итого: x3 для rails ещё пока нету.

anonymous
()

Там же, вроде, всегда была производительность дна. В три раза быстрее дна это так себе ускорение. Но в процентном соотношении это успех конечно.

xaizek ★★★★★
()
Ответ на: комментарий от Im_not_a_robot

Тем не менее крупные IT-проекты вроде GitLab, GitHub и какого-нибудь Codecademy завязаны на него и слазить вряд ли будут.

Как и всякие там Twitter’ы с Twitch’ами и прочими Kickstarter’ами и Indiegogo’ами.

EXL ★★★★★
()
Ответ на: комментарий от Im_not_a_robot

Даже если оно станет в 10 раз быстрее, его время уже ушло.

Ушло только в «стране победившего PHP», т.е. в постсовке. И то в основном из-за малого количества моментально устаревающей переводной литературы, а отечественные надмозги с «техническим английским» любят только такое. В США это и в 2020 самый популярный выбор для веб-стартапов.

Т.е. он занял свою нишу и сидит на ней ровно, без хайпа и пиара.

OSBuster
()
Ответ на: комментарий от xaizek

Там же, вроде, всегда была производительность дна. В три раза быстрее дна это так себе ускорение. Но в процентном соотношении это успех конечно.

Пайтону такая производительность не мешает быть популярным. Есть ещё куча других критериев выбора и оценки.

OSBuster
()

Выглядит вкусно. Мои сентименты рубистам.

no-such-file ★★★★★
()
Ответ на: комментарий от etwrq

В rvm завезли давно, даже с preview версий, не говоря уже о RC.

OSBuster
()
Ответ на: комментарий от no-such-file

В Ruby ведь есть end, значит потомок.

EXL ★★★★★
()
Ответ на: комментарий от GP

А чем Руби лучше Питона и Go?

Тем, что всё является объектом. define_singleton_method, читабельными DSL (сравни RSpec в Ruby и unittest в Python).

monk ★★★★★
()
Ответ на: комментарий от OSBuster

Мне просто помнится какое-то сравнение и там руби был существенно медленнее питона. Может сейчас не всё так плохо, не знаю.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Вот сравнение 2018 года. Примерный паритет, в каком-то тесте быстрее, в каком-то медленнее, где-то больше ест памяти, где-то меньше.

https://web.archive.org/web/20180705044315/https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/ruby.html

Руби был существеннее медленнее Пайтона в версии 1.8, это в нулевых. Но тогда и у Пайтона объектная модель не шла ни в какое сравнение, стоит отметить.

OSBuster
()
Последнее исправление: OSBuster (всего исправлений: 2)
Ответ на: комментарий от no-such-file

Паскаль для бинарников, Python, Ruby и bash для скриптов.

saahriktu ★★★★★
()
Ответ на: комментарий от acroobat

Синтаксис у руби , конечно, мутантский.

Это всё синдром утёнка. Мне нравится. И то, что из этого синтаксиса выросли ещё Elixir с Crystal говорит о том, что не только одному мне.

OSBuster
()
Последнее исправление: OSBuster (всего исправлений: 1)
Ответ на: комментарий от OSBuster

выросли ещё Elixir с Crystal

Вот именно, что выросли. Как рога и копыта у человека.

P.S понятния не имею, что это такое

acroobat
()
Ответ на: комментарий от GP

А чем Руби лучше Питона и Go?

Сам язык вполне себе практичный, читабельный и приятный. Но community разработчиков примерно такое же днище как и у пистона, да. Го целенаправленно проектировался как язык для дебилов, так что тут сравнение вообще некорректно.

anonymous
()
Ответ на: комментарий от OSBuster

Ну ну, вот постсовок умудрился весь западный инет засрать вопросами и статьями на тему «руби еще жЫво?» И статьями от выживающих рубишопов мусолящими тему «еще жыво! Ведь.. ведь… реилс!»

anonymous
()
Ответ на: комментарий от anonymous

Ты не поверишь, но добрую половину этого и генерит постсовок. Я, как постсовок, наблюдаю это что в западном(англоязычном?), что в постсовковом интернете. Это выродилось уже просто в какую-то шутейку вроде «Гуф умер» и зачастую употребляется с иронией, тогда как автор считает наоборот.

OSBuster
()
Ответ на: комментарий от GP

Сам спрашиваешь, сам отвечаешь, лечиться пора.

Alve ★★★★★
()
Ответ на: комментарий от unstable-case

Судя по статье на Вики у Питона ламповость более тёплая. Так что и тут мимо.

DyadyushkaAU
()

У меня ентот 3-й руби неправильный какой-то. На рекурсивном фибоначчи работает хуже 2.7, что с –jit, что без.

Fafhrd
()
Ответ на: комментарий от OSBuster

В США это и в 2020 самый популярный выбор для веб-стартапов.

Вот чушь только не неси.

Веб-стартапы в отличие от всяких копрораций бобра, стараются делать как можно дешевле и как можно быстрее.

Вот когда тебе твоя бубунта или хотя бы центось позволит сделать apt -y install ruby apache2 mysql и через минуту получить готовый к использованию веб-сервер - тогда можно будет сказать про популярный выбор. А пока, ты - андеграунд.

windows10 ★★★★★
()
Ответ на: комментарий от anonymous

Т.е. эти ваши докеры и куберы написаны дебилами для дебилов на дебильном языке? ОК.

GP
()
Ответ на: комментарий от DyadyushkaAU

В Питоне внезапно всё тоже является объектом.

Ruby:

irb(main):004:0> 1.class
=> Integer

Python:

>>> 1.__class__
  File "<stdin>", line 1
    1.__class__
              ^
SyntaxError: invalid syntax
monk ★★★★★
()
Ответ на: комментарий от anonymous

В питоне это делают через словари

case serial_code
when /\AC/
  "Low"
when "Except"
  "Exceptional"
when /\AL/
  "Medium"
when /\AX/
  "High"
else
  "Unknown"
end

Как переписать через словари? Или

case number
when proc(&:odd?)
  puts "Odd number"
when proc(&:even?)
  puts "Even number"
end
monk ★★★★★
()
Ответ на: комментарий от monk

Является, вообще-то. И работает. Хотя, может, не везде.

In [3]: isinstance(1, int)

Out[3]: True

DyadyushkaAU
()
Ответ на: комментарий от Im_not_a_robot

Даже если оно станет в 10 раз быстрее, его время уже ушло.

Куда?

alienclaster ★★★
()
Ответ на: комментарий от anonymous

А зачем словари, когда иф питоновский ничем не отличается от свитча руби, насколько я знаю.

mydibyje ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.