LINUX.ORG.RU

Ruby 3.0.0

 ,


1

4

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

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

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

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

★★★★★

Проверено: cetjs2 ()

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

правильно ли я понимаю, что для рубистов IEEE находится где-то в постсовке?

И что? Я выше приводил гораздо более приближенные к реальности факты, чем всякие эти рейтинги со своими ньюансами.

И вы привели рейтинг IEEE за 2019 год, где Ruby на 19 месте. А в этом же рейтинге за 2020 год он уже на 11 месте: https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2020

Значит ли это, что если слепо верить этому рейтингу, то мы наблюдаем взрывной рост популярности Руби? Как вы выразились «правильно ли я понимаю?»

Или вам придётся с этим (очевидно, неправдой) согласиться или это значит лишь то, что выбранный вами рейтинг мало что показывает и результаты за пределами, скажем, первой пятёрки лидеров нерепрезентативны по обсуждаемому показателю. Да даже и в ней Си выше JavaScript, что в 2020 это явно что угодно, но не про показатель хайпа и популярности.

Если у вас жена не ушла к рубисту, то нет причин не доверять статистике по вакансиям в США, приведённой мной раньше. Если ушла, то можете дальше спорить.

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

Оно?

Нет. Здесь же надо функцию proc написать с тем же case внутри, а в ruby proc системная функция, которая возвращает из имени метода объект, у которого сравнение является выполнением метода.

То есть это эквивалент

if apply(odd, x):
  'odd'
elif apply(even, x):
  'even'
monk ★★★★★ ()
Ответ на: комментарий от OSBuster

И что? Я выше приводил гораздо более приближенные к реальности факты, чем всякие эти рейтинги со своими ньюансами.

ycombinator штоль? с тем же успехом можно ссылаться на хабр

А в этом же рейтинге за 2020 год он уже на 11 месте

аж 11 место - ну теперь заживём, да :D

Если у вас жена не ушла к рубисту, то нет причин не доверять статистике по вакансиям в США, приведённой мной раньше. Если ушла, то можете дальше спорить.

я правильно понял, что очередной рубист очень быстро скатился до перехода на личности?

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

ycombinator штоль? с тем же успехом можно ссылаться на хабр

Удивительно, как вы проигнорировали статью с подсчётом вакансий. Давайте я продублирую ссылку: https://medium.com/@yoelblum_45935/demand-for-ruby-on-rails-is-still-huge-ea4434926c57

Там ещё в конце и про выбор американских буткампов есть, так что не ycombinator’ом единым.

Можете хоть только выделенный жирным текст прочитать.

аж 11 место - ну теперь заживём, да :D

Т.е. аргумент с «рейтингом» уже не актуален и эта «хохма» это всё, что можно ответить?

я правильно понял, что очередной рубист очень быстро скатился до перехода на личности?

Нет, я просто не вижу других причин упрямо утверждать что-то в противовес фактам. Словно вам хочется, чтоб так было. Возможно у вас что-то личное. Непредвзятому человеку было бы всё равно. Ну любят его в штатах, ну и пусть любят и используют, если нравится, бог с ним и с ними.

Поэтому предлагаю разойтись с миром. Не хотите – не верьте.

OSBuster ()

Супер релиз, Long Live, Ruby!

Язык, на котором набор кода поспевает за мыслями и можно писать бизнес-логику и не слетать с катушек.

Там еще много улучшений управлением памятью в данном релизе.

Проблемы со скоростью были у Руби в версии 1.8, руби уже давно по скорости на уровне всех скриптовых языков. JRuby и TruffleRuby значительно быстрее.

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

Скорее всего. Java делалась давным давно и по лекалам c++, вместо атрибутов поля класса которые не переопределяются, примитивные типы, нет лексического захвата из замыканий. Такие вещи работают против программиста но дают возможности для оптимизаций. Плюс над jvm много лет работают, escape analysis, инлайниг вызовов, из коробки 5 сборщиков мусора(!).

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

Принципиальные ограничения в самом ruby?

Ага. В Java если написано foo.bar(baz), то можно наличие этого bar определить во время компиляции по типу foo. А если final, то даже конкретное тело модуля получить.

А в Ruby foo.bar(baz) синтаксический сахар для foo.public_send(:bar, baz) с соответствующими ограничениями по вытаскиванию проверок на уровень компиляции.

И итераторы в Ruby реализованы через лёгкие потоки, а не просто объекты с состоянием.

monk ★★★★★ ()

Хоть кто-то прикручивает типизацию к динамике с умом, а не просто как карго-культ жабки. Хотя в реддите вопили, что мол хидеры, ужас-ужас. А мне нравится идея разделения кода и описания типов. Не надо язык корежить, и можно генерировать аннотации анализируя код. Успехов японцам. Особенно нравится, что они всегда всё делают, что обещали, и делают вовремя.

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

Успехов японцам. Особенно нравится, что они всегда всё делают, что обещали, и делают вовремя.

Упорство и труд.

Думается такими темпами, есть шансы вытянуть Ruby на годный уровень.

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

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

В смысле? Тем же чем ява и шарп: типизация и многопоточность жи.

и Go?

Про go я мало что знаю и как-то не сильно интересно.

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

gem i rails ?

И тебе прилетает по зависимостям куча никем не проверенного вна.

Причем иногда с поломанными зависимостями, из-за чего не помжет установиться.

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

Конечно же да, ведь IEEE это матаны и прочее. Где смузихлёмбство, где хренак-и-в-продукшон, где наяривание на моду? Ясное дело сАвок какой-то!

Нынче ИТ такое тупое()швободное от ума) что до визгу будут укакиваться мол «алгоритмы не нужны», «это не надо знать ведь всё есть готовое на стэковерфлоу» и так далее. Макака + гуглопоиск == средний ИТшник. Вот и живем в мире где браузер жрет ресурсов как оффтоп(то есть по свински), оба жирные и уродливые но пипл хавает, если в плане ОС есть линь, то вот с браузерами беда.

Ах, да НУЖНО БОЛЬШЕ ЯЗЫКОВ И ФРЭЙМВОРКОВ. Пофигу что одно и тоже, пофигу что «уже было и даже лучше, вот через 20 лет таки догнали», это ведь самое важное - модный язык(на старом стремно «чо я как лох то?»)

Софт жиреет год от года. Приложуха для андроида легко будет весить сотни мегабайт(при почти нулевом содержимом), качество софта падает, системные требования растут. И да, заплати за альфа тест, а потом может через годик мы всё починим. Или донать вникуда, У НАС ТУТ СТАРТАП.

Где профессиональная честь? Да нету, проституция в дурдоме какая-то.

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

Это в только в линуксе.

Вот и остается что ruby это для виндос и яблос.

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

Но ведь на серверах нет ни виндос ни яблос.

Пичалька!

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

Можете хоть только выделенный жирным текст прочитать.

прочитал тащемта, там написано тоже самое - It might not look that impressive for Ruby but being almost tied with PHP is impressive. Ребята на серьёзных щах гордятся, что в 2018 почти догнали PHP. Успех, чо

Причём речь даже не про северную америку и даже не про штаты, а конкретно про bay area. Успех^2

Т.е. аргумент с «рейтингом» уже не актуален и эта «хохма» это всё, что можно ответить?

т.е. согласно рейтингу он как был местечковым tier2-языком, так и остался. Какая разница насколько объект наблюдения поднялся в помойном ведре, если он всё еще в помойном ведре?

Нет, я просто не вижу других причин упрямо утверждать что-то в противовес фактам.

ваши факты не факты

Непредвзятому человеку было бы всё равно.

никакой предвзятости, просто взгляд со стороны.

Язык тащемта неплохой, лучше бидона и тем более жс, но уже мёртвый, вторую волну хайпа ему не словить

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

Язык тащемта неплохой, лучше бидона и тем более жс

Я вам попрошу птичку нашу не обижать (с) Змей вполне кошерный ЯП. Рубироиду до него не дорасти. И посмотрим, что в ближайшем будущем в змея прикрутят - если осилят мультипоточность и поднимут перформанс, то цены ему не будет.

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

Для читабельности. Для единообразия

Всё программисты в мире понимают for i=0 i<10 i++ { Print «hello» }

Всё. До одного. Это предельно понятно, читабельно и есть во всех языках.

Нафиг изобретать 100 языков с сотней конструкций когда уже все есть?

Я без какого-либо негатива, я искренне недоумеваю.

pihter ★★★ ()
Ответ на: комментарий от lizik
  1. Не даёт, там примерно 50% от скорости сишечки должно быть.
  2. Потому что на доведение до ума IDE, рантайма и компилятора джавы было потрачено несколько миллионов человеколет, которых не было у создателей python или ruby.
siraenuhlaalu ()
Ответ на: комментарий от pihter

Во-первых так стараются не писать даже в тех языках, где эта конструкция работает. Во-вторых возможности языка (классы, миксины и пр.) напрямую определяют структуру приложения.

special-k ★★★ ()
Ответ на: комментарий от Ford_Focus

Язык тащемта неплохой, лучше бидона и тем более жс, но уже мёртвый, вторую волну хайпа ему не словить

Каждый год релизы, множество новых фич. Мёртвый кококо! И не сказать что слишком маргинальный, по-прежнему в топах на гитхабе. И вакансии появляются регклярно. Нет, лоровцы сказали в морг, значит в морг. Зато носятся с каким-нибудь котлином и не к ночи помянутым растом.

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

Во-первых так стараются не писать даже в тех языках, где эта конструкция работает

Если мне нужно сделать что-то десять раз - не вижу более очевидного, а, следовательно, верного способа.

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

В каком месте это очевидно? А почему не double? Плюс ты должен не забыть, инициализировать 0 и не забыть, что < 10, а не 11. Получается совсем не очевидно. В отличие от 10.times, что однозначно означает «10 раз».

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

Ну… Покамест в консервативном жырном ынтерпрайзе до питона не дошло. Тока Perl.

Дойдёт, наверное, со временем и до питона.

При этом места для Руби я особенно не вижу. Впрочем, что мне видно с моей кочки зрения?

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

В каком месте это очевидно? А почему не double? Плюс ты должен не забыть, инициализировать 0 и не забыть, что < 10, а не 11. Получается совсем не очевидно. В отличие от 10.times, что однозначно означает «10 раз».

У меня в /вездесущем/ util.h есть такой «дефайн»:

#define times(i, n) for (size_t i = 0; i < n; ++i) 

Как говорится, не Ruby единым…

Владимир

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

В каком месте это очевидно?

Проведи исследование: покажи 10 программистам и пусть они тебе опишут как они это поняли. Потом ста.

Приведённая конструкция, бесспорно, менее очевидна, чем 10 таймс, но её уже все равно все знают, я про то, что нефиг плодить сущности сверх необходимого.

Бесспорно, это дело вкуса, но: допустим, мне надо покрасить стену, я открыл дедовскую книжку, научился красить кистью из банки. Покрасил. Тут приходит другая и говорит, ты как дед старый, можно ж валиком, сходи, мол, купи. Я: на фига, я ж уже покрасил(изучил си-подобный фор) друг: нет, валиком эффективней, переучивайся!

pihter ★★★ ()