Состоялся релиз Ruby 3.0.0, динамического объектно-ориентированного языка программирования, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3. Ruby 3.0 является восьмым значительным выпуском, подготовленным в рамках планового процесса разработки, подразумевающего отведение года на подготовку функциональных улучшений и формирование каждые 2-3 месяца корректирующих выпусков...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=54315
руби-руби-руби-руби! (как в песне Кайзер Чифс пелось)
Разве оно не на java runtime, где jit из коробки?
Есть сторонняя реализация на JVM, но речь не о ней.
Официальная реализация написана на Си. Есть JRuby на java.
Ну все, ты заложил связку из триггеров.
Ждем растаманов с дыренями (в задней части самого растамана, видимо) в си.
Стив Клабник свалил из Ruby в Rust.
юзеры Раста настолько суровы, что переписывают на Расте самих себя
Единственное годное приложение написанное на Расте это сам Раст.
> Стив Клабник свалил из Ruby в Rust.Петр Алексеич свалил из Rust в Cи при этом.
>> Стив Клабник свалил из Ruby в Rust.
>
> Петр Алексеич свалил из Rust в Cи при этом.Фёдр Иванович свалил из Си в segfault
хе
> Стив Клабник свалил из Ruby в Rust.Игорь Семенович Чезабрехало свалил из фортрана на питон
Мэттью Аналвхоре свалил из похапэ на js
Хулио Мария Ибанес Гейделопа свалил из си на вала
Юлия Сергеевна Зуева свалила с 1С на С
Ванька Седой свалил с батников на героин
Джеймс ЛилСтомпа Фистингофф свалил с дивана на кресло
Мурка Солнцевская свалила из ИТК-234 в ИТК-325
И?
> Ждем растаманов с дыренями (в задней части самого растамана, видимо) в си.Растоманы будут завтра, пока наблюдаем сишников.
Гы. Ruby пока не тянет Rails.
Скорее рельсы надо подгонять под паровоз. Паровозу ведь вместо котла с тендером поставили газотурбинку с самолетным форсажем. Ну или перешивать на узкую колею, оптимизируя список действительно критичных методов. Буде у нас узкоколейный рубиновый реактивный паровоз с театром одного актера внутри
Rails со своим "masturbation over configuration" так сильно подпортили репутацию руби, что было бы лучше если бы их вообще никогда не существовало.
Не проще сразу на Go перейти, чем со второй версии на третью?
Кто-то пишет ещё на этом?
Представь предприятие на несколько сотен человек, и там внутренняя СРМ, где всё начиная от планировщика заданий, заканчивая генерацией конструкторской документации и даже отдельных вещей для бухгалтерии, которую писали/переписывали/дописывали 10 лет. Ты им предлагаешь все выбросить и переписать на Go? При том что ей занимается два человека. Правильный ответ они перейдут на Ruby 3 лет через 10)
Так вот для кого Мацумото разрабатывает третью версию! :-)
Это представить невозможно. Если эта русскоязычное предприятие - всё будет на 1С, если англоязычное - на SAP.
На руби пишут всякие бекэнды, и тут заменить руби на го очень просто, достаточно старое оставить на руби, а новое писать на го.
Русскоязычное еще и полувоенное. А заменить не просто, хотя бы потому что на такие предприятия не очень-то и охотно народ идет.
Вы серьезно это все про военных?На сколько я знаю военные используют частные реализации оборудования,
трансляторов и т.д. На кой сертифицировать какой-то сраный Ruby и зачем
это может быть надо?Относительно фронта, то все делают под заказ на Qt или MFC.
А то о чем вы говорите, то это околовоенное обслуживание каких-то совковых организаций с пристарелым штатным составом и как вы им Ruby продадите?
В данном случае Ruby может пройти только с готовым уже решением или со специалистом.
Специалистов на Ruby на рынке крайне мало и стоят они космические деньги, т.е. почти наверняка эот рискованно и опасно для рядового заказчика.
Проcрал рынок на самом деле разработчик своей стагнацией и убеждениями, а сделав огромную пропасть поставил под сомнение экономическую целесообразность использования новой версии.
И что Руби есть и сертифицированной Астре и в Альте. Никаких проблем с Руби нет. А у предприятия продуктов с Qt полно.
...и на эльбрусах ruby тоже работает, а вот с этим ихним &%&^%&^ go всё куда сложней.
нахер перейди со своим гоу. нода и та адекватнее для микросервисов. нахрен мне тащить мусоросборщик с уродливым синтаксисом туда где уже есть мусоросборщик? но юзерам гоу не понять, нода для них сложна, и джаваскрипт, и эвентлуп
Я не понимаю что делать в go без дженериков. Если нужно даже самые банальные вещи с какими-нибудь графами или другими структурами сложнее map сделать, надо либо руками писать свою имплементацию, либо копипастить из библиотек и менять под свои типы, либо городить страшные type assertions. Ад какой-то.
Идея гошки была "не тащить сразу весь c++ в гошку".Да и идея плюсов была в том, что усложнения и ненужности присовывать потихоньку, десятилетиями, чтобы не распугать мобов.
Поверь мне, в гошку могли бы быстро притащить плюсы с наследованиями, преследованиями, перегрузками, перезагрузками... приправить наркоманией из синтаксического сахара java-like, добавить казуальщины в стиле модного ныне рюста...
Но кто возьмётся писать проект на гошке, если она будет с каждой версией мутировать до неузнаваемости.
Нет, понятно, тебе-то для скрипта на 50 строк это пофигу - сегодня ты кукареку, ярый ортодоскальный башист, завтра ты всех поливаешь говной - ты ультра-питонщик, послезавтра ты уже радикальный nodejs-ист и за js говто на лоскута даже мать родную порезать... Но, не у всех проекты на условные 50 строк, 49 из которых скопированы со стековерлоу. Кому-то надо писать, чтобы работало быстро и стабильно, было поддерживаемо, обслуживаемо и при добавлении фичей - расширяемо. Тут кукареку не работает.
А по теме - надо ждать пока прибудут пара минорных версий, тогда можно будет изучать и спустя ещё 1-2 уже можно будет пробовать пристреливаться к продакшену на рубях 3.3 или 3.4. а там видно будет.
братан, выучить синтаксис гоу не проблема, пара дней. но нахера? пока только маркетинг
теже плюсы ты нормально тащишь в ноду, если надо. нода не для вычислений. так и гоу тоже, иначе бы там не было сборщика
Да всё, кроме сей маркетинг. Я вообще про руби узнал только на днях, когда понадобилось сайты восстанавливать из вебархива. А для этого на гитхабе лежит Wayback Mashine Download и она зараза на руби, хорошо что хоть никаких плясок не понадобилось с бубном - встало всё само и заработало.Какой дебил решил http сервис писать на какой-то руби-овне, вообще не понятно мне, зачем, для чего, х.з.
Про маркетинг ты прав как никогда: ряд маркетплейсов написан или активно использует Go.А ещё mail.ru активно переписывает серверный фронтенд почты и кучу других проектов.
Это только то, о чем я знаю непосредственно. А вообще проектов на Go уже овердофига.
Это не значит, что он очень хорош. Например, у нас отцы основатели все больше новых проектов запускают на Java и Kotlin, и про горный бэкенд говорят «лучше бы мы взяли джавку».
Но по факту, Go - это новый PHP. Уродливый, но стандарт де факто для тех, кто хочет «не слишком сложно и достаточно быстро».
Не слишком сложно и достаточно быстро - мало профита для программиста :)
> Но кто возьмётся писать проект на гошке, если она будет с каждой версией мутировать до неузнаваемости.Но кто возьмётся писать проект на языке, синтаксис которого придуман на коленке и на коленке же постоянно допридумывается по ходу пьесы.
Не благодари.
Я не понимаю, о чем ты. Я решил попробовать go какое-то время назад. Мне нужно было решить несложную задачу, для решения которой мне нужно было использовать графы. Так сложилось, такая проблема была. Я хотел чтобы каждая нода содержала в себе нужные мне данные. В итоге всё уперлось в то, что я должен был либо руками перепиливать существующую библиотеку, либо фигачить type assertions. Может я не понимаю что-то, скажите мне если есть какой-то способ сделать это нормально. Но из того что я пронаблюдал, это средневековье какое-то. Я не прошу синтаксического ада как в плюсах, но какие-то базовые вещи должны всё-таки быть имплементированы, копипастить код это уже какая-то дикость.
Кстати, напомнил. Несколько лет назад мне нужно было решить несложную задачу, для чего требовалось использовать графы. Выбор языка не стоял, надо было делать на плюсах. Взял я BGL и ради решения этой несложной задачи сношался с ним недели две, наверное. Особенно доставляли сообщения об ошибках от компилятора, где раскрывались шаблоны с совершенно диким уровнем вложенности, и понять что-то было совершенно невозможно. В конечном итоге сделал, конечно, и получившийся код на вид выглядит довольно простым, может быть, он даже до фига эффективный (там это не критично), но сколько с ним было боли… Одно радует — дорабатывать тот код точно не придётся, его некоторое время спустя выкинули за ненадобностью.
> самые банальные вещи с какими-нибудь графами или другими структурами сложнее map сделать,https://pkg.go.dev/gonum.org/v1/gonum/graph
Осторожно, береги шаблон.
Проверки типов нет -- Node[Foo] / Node[Bar] не отличаются.И да, что делать непонятно: выходит или не-по-гошески сложно, или заметно убого
Не понял, что ты подразумеваешь под Node[Foo] и Node[Bar], но если тебе нужна проверка типов (если у тебя ноды в одном графе имеют разные типы, что не самый типичный вариант использования), берёшь и делаешь её. Встроенные средства в Go для этого есть, если ты не в курсе, и даже больше одного.
Ага, и как мне там заиметь ноды с нужными мне данными? Без всех этих диких type assertions.
Создать для них тип, реализующий интерфейс graph.Node, очевидно. Надо рассказывать, как это делается, или сам найдёшь нужную страничку в "go для чайников"?
Ага, и потом при каждом чихе или попытке поработать с графом нужно делать то что в go называется type assertion. value, ok := node.(MyOwnNodeType)
И по большому счёту нужно ещё проверять ok и делать что-то на случай если где-то был баг и в граф попал не "MyOwnNodeType". Выносим компайл тайм проверки в рантайм. 10/10 восхитительное решение проблемы.
> Ага, и потом при каждом чихе или попытке поработать с графом нужно делать то что в go называется type assertion. value, ok := node.(MyOwnNodeType)Ну вот не надо преувиличивать. При работе с собственно графом это не требуется. Когда нужно работать с содержимым узла — да, требуется. Скорее всего, это будет единственный type assertion в функции. Не вижу в этом ничего криминального.
> Выносим компайл тайм проверки в рантайм. 10/10 восхитительное решение проблемы.
Это решение называется «динамическая типизация». Её использование в сабже тебя не смущает?
Преувеличивать, конечно же. Опечатался.
Сам пиши на этом недоязыке Golang.
тормозная и нелогичная херобора
Оно живое? Чего они все в 2020 году зашевелились, то Перл, то теперь Руби.
Много лишнего времени появилось.
На самоизоляции все. Дело было вечером, делать было нечего вот и решили поработать
Какие преимущества перед Crystal?
Количеством написанных гемов на все случаи жизни.
> Какие преимущества перед Crystal?Тем что Ruby ещё жив, а Crystal уже нет.
Когда последний релиз вышел?
Когда версию 1.0 ждать?
В июне и номер версии ничего не значит. Или у вас хромова болезнь версий?
Конечно ничего не значит.
И то, что ключевой разраб ушёл и теперь работает рубистом.
Многие библиотеки в заброшенном состоянии, почти всё приходится допиливать. И тут начинают вылезать баги компилятора.
не собирается по полчаса?
Ждем когда cpython сворует у pypy.
Ваше мнение очень важно для нас, пожалуйста, оставайтесь на линии.
GitLab станет, наконец-то, быстрее шевелиться?
> GitLab станет, наконец-то, быстрее шевелиться?Быстрее тормозить
Там кусочки на Go пишут, видимо, чтобы ускорить как раз.
Для этого нужен не Руби 3, а просто больше оперативной памяти поставить, чтобы он мог съесть совсем всю оперативу.
Комментарий устарел на 10 лет:Состоялся релиз Ruby 3.0.0, динамического смузихлебно-ориентированного языка программирования
Согласен, понапишут на своих смузизшных ся/плюсах рубилиберду всякую. Наш выбор только COBOL, только FORTRAN!
Ассамблёр же!
Хм, а в последних стандартах Фортрана классы ещё не появились?
Эй, руки прочь от Руби. Смузихлебные - это всякие расты с го. А руби превосходный язык.Всем остальным надо поучиться у руби как сначала надо придумывать дизайн языка, и только потом его реализовывать.
> Смузихлебные - это всякие расты с го. А руби превосходный язык.Не, руби тоже смузихлёбный. Он тоже из современных хайповых языков. Даже если руби и подрастерял весь хайп вокруг него, это ничего не меняет, он не стал менее няшным от этого.
Всякие штуки типа
99.downto(1) { |i| print i, " bottles of the beer" }
глубоко противны суровым сишникам: мало того что лямбда, так ещё и аргументы её не между скобочек, а между || указываются. Фу, как так можно? Я не знаю, придумал ли эту нотацию Мацумота для ruby, или позаимствовал где, но ознакомился я с ней именно в ruby. А тут недавно обратил внимание, что у C'шников подгорает от неё жёстко. И не, ну ты сам прикинь, это же вместо сурового синтаксиса for(;;), ересь же!
>Всем остальным надо поучиться у руби как сначала надо придумывать дизайн языка, и только потом его реализовыватьТо-то они, через семь лет придумывания, из всех возможных аннотаций типов выбрали самую уродскую.
> Экспериментальная поддержка модели акторов Ractor, предоставляющую абстракцию, подобную "акторам" (ruby actor), разработанную для обеспечения потокобезопасного параллельного выполнения программы. Поддерживается создание нескольких ракторов и их параллельный запуск. Между собой ракторы взаимодействуют путем передачи сообщений.Джо Армстронг с неба смотрит на Юкихиро Мацумото с нескрываемой иронией.
Поздравляю, ребятки-котятки! Добрый и светлый язык. Сообщество дружное и тёплое
> Сообщество дружное и тёплоеТеплое и мягкое ;)
Мягкое и мелкое
Даже слишком дружное, если вы понимаете о чем я.
Не понимаю, но я в деле
Вау, Ruby всё ещё жив. Думал Python его задушил =) Выходит спрос есть и не маленький. Надо попробовать пописать на нём.
Большинство вакансии просто не в России. Из-за этого некое ощущение, что руби умер.
Удалёнку и интернет пока ещё не запретили. А внутренний рынок - это проблемы локального рынка. Ясное дело, что программера на питоне или пэхе здесь можно за копейки найти.
> Удалёнку и интернет пока ещё не запретилиЯ бы на твоём месте уже записывался в очередь на регистрацию физлиц-иноагентов. А то не успеешь — можешь под уголовку попасть.
Python уже мёртв. Начинать на нём новый проект - безумие.
А вот Ruby получил возможность вернуться обратно, по крайней мере в области сайтостроения.
А на чём начинать, бро? На чём?
Кроме как на плюсах или голом си не вижу вариантов, но после питона чо-та я стал пугливый и ленивый.
Не зря дедушка ESR говорил: please write in C.
Нет универсальных языков сейчас. Нет и не придвидится. Если для веба, то Ruby не такой уж и плохой вариант на ближайшую перспективу. По крайней мере, чище, чем Javascript. И явно проще, чем Питон для разработки и поддержки проекта.
Сейчас нет универсальных языков, а были ли они?
Если верить рекламе всяких платных учебных курсов, то питон может всё. Ничего другое уже не нужно.
> Если верить рекламеИ что, есть такие идиоты?
Для решившего заняться программированием впервые, вполне может подействовать.
> Сейчас нет универсальных языков, а были ли они?Был один, да закончился при строительстве Вавилонской башни, говорят...
Да что ты несешь такое, оспадя!!!(
Дождались релиза. Руби жив, накатим же бухлишка, за руби платят в отличии от
На Руби платят за поддержку легаси и вполне нормально платят, факт вполне медицинский.
есть и стартапы на рубях. странно, но факт. на перле стартапов не видел )
Они бы хоть сайт обновили... и документацию. То чёрт ногу сломит, где спецификация. Подсмотрели бы как сделали в Python, Golang.
вот буквально сегодня искал для жаждущего знаний по питону мануал на их оф сайте "для начинающих". через 30 секунд бросил и отправил его в гугл. вот не надо тут про питон
Не понял, чем жаждущему знаний по питону поможет мануал по руби на офсайте для начинающих? Поищи жаждущих знаний по руби и предложи им мануал по питону, там он достаточно подробный и с кучей примеров на все случаи жизни, даже пишут в какой версии и что изменили.
ты как-то очень сложно зашел. при чем здесь руби?
Я когда-то изучал по pdf "Programming Ruby The Pragmatic Programmer's Guide". Но тогда руби был по проще.
Web версия, кстати, всё ещё доступна: https://ruby-doc.com/docs/ProgrammingRuby/ , но наверняка частично устарела.
> То чёрт ногу сломит, где спецификация.Чё? У тебя с глазами всё в порядке?
Идём сюда: https://www.ruby-lang.org/en/
Там есть ссылка Documentation: https://www.ruby-lang.org/en/documentation/
По этой ссылке очень много всего, но если пролистать все эти туторы "ruby for dummies in 21 days", то там ниже мануалы, среди них первый: https://ruby-doc.com/docs/ProgrammingRuby/
И вот здесь уже первое же предложение: "This book is a tutorial and reference for the Ruby programming language." Чего тебе ещё не хватает?
> Подсмотрели бы как сделали в Python, Golang.
Чё ты как дед старый? Интерфейс не такой, как ты привык, и тебе уже нужна помощь внука, чтобы справиться?
Обновят, родной, не бойси. С документацией в Руби всё хорошо.
https://rubyreferences.github.io/rubyref/
Астарожно потыкал палочкой - оно живое и шевелится О_о
как прослойка между фронтом и корой на какой-нибудь жабе в кровавом энтерпрайзе оно будет жить ещё 300 лет
Тестовые фреймворки еще на нем бегают. У меня знакомый тестер очень хвалил - говорил "я ни разу не программист, но автоматизировать на руби тесты получается даже у меня".
Ползают они.
С чего он умер? Смотрим стату: charliereese.ca/article/top-50-y-combinator-tech-startups
Язык может быть и хороший. Но меня от знакомства с ним всегда останавливало сравнение производительности с Perl или Python. Как бы ни был хорош язык, но если он жёстко тормозит, то область применения сильно сужается.
Сравнивают и Руби все равно не догоняет Питон.
опишите в какой области вы хотите его применить, может быть смогу что то прокомментировать
А perl и python не догоняют shell + unix утилиты.
Дадада, я помню этот язык и восторженные возгласы. Тру объектно ориентированные язык, убийца C++. Дадада.
> убийца C++Ооо! По какой помойке ты шарился, где такие возгласы звучали? Я люблю такие помойки.
> По какой помойке ты шарилсяви таки не поверите
Для С++ убийца не нужен, он сам себя закапывает.
Да ну его, страшный какой-то.
Правостороннее присваивание - это прям дичь. Отличный способ сделать код нечитаемым.
Юкихиро Мацумото - chotkij patsan.
Так теперь Elixir можно не учить?
Это почему же?
Раби стал быстрым и многопоток в нем теперь есть
Я не понял разницы между VM и JIT на картинке. JIT включать нужно отдельно? А когда на Rails это будет использоваться?
Что такое "Раби"?
Так ребе читает руби.PS: :)
Он для чего-то кроме метасплойта ещё нужен?
Вопрос к знатокам: "Рубин без Рельсов пригоден для разработки?".
Да, конечно, почему нет то
Некоторые стартапы написаны на чистом Ruby. Кроме RoR, для мелких проектов есть: Padrino, Roda
Из новых: Bridgetown (а-ля Jekyll)По синтаксису и экосистеме мне Рубин больше нравится, чем PHP / Python / etc.
Как раз без них и пригоден. А RoR отвратителен.
Чем отвратителен то?
Не обращай внимания, это тролль.
что-то между 2.7 и 3.0 меньше разницы, чем было между 1.9.1 и 1.9.2. или чем между 1.8.7 и 1.9.rubylint уже год как пугает "вот придёт 3.0 и у вас жопа отвалится". а чёт нифига.