The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Опубликован язык программирования Ruby 3.4.0

25.12.2024 13:40

Состоялся релиз Ruby 3.4.0, динамического объектно-ориентированного языка программирования, сосредоточенного на высокой эффективности разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и совместима с GPLv3.

Основные улучшения:

  • Добавлен новый идентификатор "it", отождествлённый с неименованным параметром, выставляемым в блоке по умолчанию. Новый идентификатор аналогичен ранее доступной переменной "_1" при передаче в блок одного параметра. Введение нового идентификатора объясняется желанием избавиться от путаницы, вызванной возможностью передачи в блок нескольких параметров ("it" подразумевает, что всегда имеется только один аргумент, а при указании "_1", не ясно, существует ли параметр "_2").
    
       [1, 2, 3].each { puts _1 }
       [1, 2, 3].each { puts it }
    
       ary = ["foo", "bar", "baz"]
       p ary.map { it.upcase } #=> ["FOO", "BAR", "BAZ"]
    
    
  • По умолчанию задействован парсер Prism, который более переносим, прост в сопровождении и позволяет обрабатывать ошибки в коде. Для разбора кода на языке Ruby в своих программах доступны методы Prism.parse(source) для получения AST-представления кода, Prism.parse_comments(source) для выделения комментариев из кода и Prism.parse_success?(source) для проверки наличия ошибок в коде. Для возвращения ранее применявшегося парсера "parse.y" можно использовать опцию "--parser=parse.y".
  • В библиотеке "socket" реализована и включена по умолчанию поддержка алгоритма Happy Eyeballs (RFC 8305) для выбора оптимального протокола при подключении к хостам, одновременно доступным по адресам IPv4 и IPv6. При использовании алгоритма Happy Eyeball клиент сразу резолвит адреса IPv4 и IPv6 для хоста и отправляет запрос на соединение по IPv6, а затем с задержкой 250 мс пытается параллельно подключиться по другим привязанным к хосту адресам, не дожидаясь результата предпринятых ранее попыток подключения. Активным оставляется соединение, которое было установлено первым, а остальные закрываются. До этого, вызов методов TCPSocket.new и Socket.tcp в программах на языке Ruby приводил к последовательным попыткам резолвинга адресов IPv4/IPv6 и подключения, что приводило к задержкам, например, когда первой была попытка подключения по IPv6, но система не поддерживала IPv6. Для возвращения старого поведения можно использовать переменную окружения "RUBY_TCP_NO_FAST_FALLBACK=1", настройку "Socket.tcp_fast_fallback=false" или аргумент "fast_fallback: false" при вызове методов.
  • Продолжена оптимизация производительности JIT-компилятора YJIT, развиваемого разработчиками платформы электронной коммерции Shopify в рамках инициативы по увеличению производительности Ruby-программ, использующих фреймворк Rails и вызывающих очень много методов. В отличие от JIT-компилятора MJIT новый YJIT применяет версионирование базовых блоков (LBBV - Lazy Basic Block Versioning) вместо обработки методов целиком и реализован в форме интегрированного JIT-компилятора, написанного на языке Rust. Благодаря LBBV, JIT вначале компилирует только начало метода, а оставшуюся часть компилирует через некоторое время, после того как в процессе выполнения будет определены типы используемых переменных и аргументов.

    В новой версии в большинстве тестов на системах x86_64 и ARM64 удалось добиться повышения производительности YJIT. Добавлены новые оптимизации: использование регистров для локальных переменных и аргументов методов; задействование Ruby-реализаций Array#each, Array#select и Array#map; inline-развёртывание пустых методов и методов, возвращающих константы, собственный экземпляр или входной аргумент; отдельные генераторы кода для определённых методов; оптимизация работы со строками (String#getbyte, String#setbyte); ускорение битовых операций.

    Сокращено потребление памяти за счёт сжатия метаданных и реализации унифицированной системы ограничений. Добавлена опция "--yjit-mem-size", по умолчанию выставленная в значение 128MiB и влияющая на общее потребление памяти. Добавлена опция "--yjit-log" для включения отслеживания, какой именно код компилируется.

  • Предоставлена возможность динамической загрузки альтернативных сборщиков мусора, собранных в форме разделяемых библиотек. Для указания библиотеки с необходимым сборщиком мусора следует использовать переменную окружения RUBY_GC_LIBRARY. Задействованный по умолчанию встроенный сборщик мусора теперь может быть собран в форме отдельной библиотеки. В качестве альтернативы добавлен сборщик мусора на базе фреймворка MMTk, написанного на языке Rust.
  • Разрешена передача в методы именованных аргументов, имеющих значение nil. Аргументы со значением "**nil" теперь обрабатываются как пустой хэш "**{}" без передачи именованных аргументов в метод.
  • В индексах запрещена передача блоков и указание именованных аргументов, например, "a[&b]=c" и "o[1, a: 1]".
  • Оптимизирован метод JSON.parse, который теперь работает в полтора раза быстрее пакета json 2.7.


  1. Главная ссылка к новости (https://www.ruby-lang.org/en/n...)
  2. OpenNews: Опубликован язык программирования Ruby 3.3
  3. OpenNews: Доступен встраиваемый интерпретатор mruby 3.2
  4. OpenNews: RubyGems переходит на обязательную двухфакторную аутентификацию для популярных пакетов
  5. OpenNews: Шутка про возраст женщин привела к изменению кодекса поведения Ruby
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62467-ruby
Ключевые слова: ruby
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (77) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, ijuij (?), 14:31, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне нравится в Ruby только то, что он простой, код легко читать, и есть возможности для метапрограммирования!

    class Calculator
      [:add, :subtract, :multiply, :divide].each do |operation|
        define_method(operation) do |a, b|
          case operation
          when :add
            a + b
          when :subtract
            a - b
          when :multiply
            a * b
          when :divide
            a / b
          end
        end
      end
    end

    calc = Calculator.new
    puts calc.add(5, 3)      # => 8
    puts calc.subtract(5, 3) # => 2

     
     
  • 2.13, Аноним (13), 15:17, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ехал end через end.
     
  • 2.17, Аноним (17), 15:29, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Это делает 4 метода с case и это, конечно, позор. При этом напрямую написать было бы короче и проще для понимания.
     
  • 2.18, Ананий (?), 15:29, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    на Lua можно сделать это с помощью метатаблиц и с гораздо более читабельным кодом

     
     
  • 3.84, Фамилия (?), 20:17, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для незнающих lua привели бы этот код
     
  • 2.56, Анониматор (?), 17:47, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Подтверждаю легкость чтения. Года 3 назад не владея этим языком легко нашел в сорцах одного софта программы выключатель платных энтерпрайз-функций и разблокировал их.
     
     
  • 3.60, Аноним (17), 17:49, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для этого не нужно читать и понимать код. Ты лучше почитай исходники гитлаба часик и перескажи его архитектуру.
     
  • 2.67, Аноним (-), 18:11, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Говорят, что Юкихиро Мацумото  создал максимально читабельный язык. Мне кажется операторы "when, end" делают семантику языка громоздкой. Напомнило Паскаль.
     
     
  • 3.95, Аноним (95), 23:09, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >операторы "when, end" делают семантику языка громоздкой

    Точно семантику? Может, ты хотел сказать "синтаксис"?

     
  • 2.69, freebzzZZZzzd (ok), 18:16, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Мне нравится в Ruby только то, что он простой

    не хочу расстраивать, но код выше не выглядит простым или понятным навскидку.

    и зачем рассматривать калькуль? давайте лучше про какой-нибудь документооборот на 5-10 млн строк. какие плюсы у прыщ^Wруби?

     

  • 1.4, nume (ok), 14:37, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Его ещё используют в проде или он изжил себя?
     
     
  • 2.6, ijuij (?), 14:46, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нашёл 242 вакансии по запросу «ruby» на hh.
     
  • 2.7, q (??), 14:55, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вполне себе. В рф из крупных Сбер и Самолет используют.
     
     
  • 3.16, аном (?), 15:25, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В Сбере на нем легаси, которую никто не хочет переписывать. Как в Яндексе питон2.
     
     
  • 4.97, анонимусис (?), 23:39, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Самокат, домклик, сбермаркет - неплохие такие легаси
     
  • 4.99, Величие Тьмы (?), 00:21, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    сам придумал про легаси? или просто поворчать накинул на вентилятор - и сбежал?
     
  • 2.14, Аноним (17), 15:18, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Его никогда и не использовали в проде. Это язык одного фреймворка - рельсов, вот их использовали, и да, они себя изжили. А больше нигде его и не было.
     
     
  • 3.82, Аноним Анонимович Анонимов (?), 19:47, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Vagrant, например, написан на руби, живее всех живых.
     
  • 2.20, Бывалый Смузихлёб (ok), 15:41, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ну на яблоке используют. В pod-файлах установочника сторонних модулей и корректировки любой возникающей ерудны
     
  • 2.22, Аноним (22), 15:46, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Загибай пальцы. Гитхаб, гитлаб, твитч Какая фигура у тебя на руке получилось?
     
     
  • 3.57, Аноним (17), 17:48, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Довольно ничтожная. Такая же фигура получалась 5 лет назад когда считали кто всё ещё на mercurial сидит. С тех пор и те три пальца разогнулись.
     
  • 2.59, Facemaker (?), 17:49, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Его ещё используют в проде или он изжил себя?

    Когда-то делал на Ruby систему интеграционных тестов для сложного продукта, написанного на C++. Просто из-за идиосинкразии к Питону. Ну и не на C++ же :).

    Сейчас сделал бы на Rust. Писать так же легко и быстро, сопровождаемость несравненно выше.

     
     
  • 3.76, Аноним (17), 19:02, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну и не на C++ же :)

    Почему, catch вполне себе неплох.

     

  • 1.5, Аноним (5), 14:40, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    веселят меня такие заявления:
    «вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp»
    если он так хорош, что ж он не так популярен? :-)
     
     
  • 2.8, Аноним (8), 14:56, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    медленный очень
     
     
  • 3.12, test (??), 15:16, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А как же 3х3х3 ?
     
  • 2.9, Аноним324 (ok), 15:07, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > если он так хорош, что ж он не так популярен?

    С какого перепугу он не популярен, если он входит в топ 20 самых популярных языков в индустрии по разным топам. На гитхабе вообще топ-10.

     
  • 2.11, Аноним (17), 15:15, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > «вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp»
    > если он так хорош, что ж он не так популярен? :-)

    Так из этого никак не следует что он хорош. Тут сказано что он вобрал в себя лучшее из худших языков в истории.

     
  • 2.48, Аноним (48), 17:32, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.49, Аноним (48), 17:34, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 3.55, Аноним (17), 17:46, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.72, Вова (?), 18:37, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Для популярности нужны деньги, а не хорошесть.
    Чем популярен Киркоров? Опра Уинфри? Джигурда? Вот-вот. :)
     
     
  • 3.77, Аноним (17), 19:15, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Они популярны своими выступлениями Не было бы выступлений, не было бы денег Ты... большой текст свёрнут, показать
     
     
  • 4.85, Аноним (85), 20:17, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хм а как это язык взлетел если даже вакансий нету А если посты пишут не за ... большой текст свёрнут, показать
     

  • 1.23, Вы забыли заполнить поле Name (?), 15:56, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Помню раньше разрабы на этом языке любили говорить, что программист дороже железа и что мол дешевле писать быстро на скриптухе, а потом железом в случае нехватки производительности закидать. Что вы скажете теперь?
     
     
  • 2.24, Аноним (22), 15:58, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Все правильно сказали. Или ты где-то нашел залежи дешёвых программистов?
     
     
  • 3.28, Аноним (17), 16:09, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так джунов с чатгпт наперевес пруд пруди. Что, ruby для них слишком сложный?
     
     
  • 4.32, Аноним (22), 16:15, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У десятка тысяч настоящий обезьян случайно барабанящих по клавишам больше шансов написать что-то стоящее чем у этих джунов.
     
     
  • 5.34, Аноним (17), 16:21, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так и есть. Кроме того, любой джун которого можно взять за еду через полгода научится программировать и захочет зарплату миддла, а уволить его будет ещё дороже, потому что возиться в его скриптне другой джун уже не сможет, а миддл согласится только с ЗП ещё в разы выше.
     
     
  • 6.35, Аноним (17), 16:22, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да, а рубийный код всё это время пока собственник пытается экономить на программистах будет жрать свои 10х железа.
     
     
  • 7.43, Аноним (22), 16:48, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вместо 10% процессорного времени будет есть 100%? Да на здоровья.
     
     
  • 8.52, Аноним (17), 17:39, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Админы локалхостов с 0 001 RPS нагрузки могут хоть на AVR ках или эльбрусах запу... текст свёрнут, показать
     
     
  • 9.79, Аноним (22), 19:20, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот ты и прокололся Для сколь-нибудь серьезного применения арендные сервера ни... текст свёрнут, показать
     
     
  • 10.100, Аноним (100), 01:36, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В таком случае можешь пересчитать изжержки на стоимость железных серверов В так... текст свёрнут, показать
     
  • 3.30, Вы забыли заполнить поле Name (?), 16:10, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Залежи дешевого железа не нашёл.
     
     
  • 4.31, Аноним (22), 16:13, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну это не в той стране искал.
     
     
  • 5.33, Аноним (17), 16:17, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    10x расходов на железо в любой стране 10x.
     
     
  • 6.36, Аноним (22), 16:24, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты завозишь по левому импорту через три страны, то нет.
     
     
  • 7.53, Аноним (17), 17:41, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ещё раз, 10x расходов на железо в любой стране 10x. Читайте пока не поймёте что написано.
     
     
  • 8.80, Аноним (22), 19:21, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ещё раз это копейки по сравнению с ценой программиста в нормальной стране Норма... текст свёрнут, показать
     
  • 5.39, Аноним (39), 16:40, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зато в этой скоро дешёвых программистов будет пруд пруди. Только вот их всех рассадят по шаражкам.
     
     
  • 6.45, Аноним (22), 17:07, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И будут они просто по ходить на работу и пить чай. Такое уже проходили.
     
     
  • 7.54, Аноним (54), 17:43, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да только что! Сколько там эффективные линуксоиды распилили на ядре? А сколько на саму разработку ушло? Вооот...
    Кончилось высокомерие прогеров, теперь это просто расходник.
     
     
  • 8.75, Аноним (22), 18:42, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Просто на разработку ядра тратилось не само ядро А компании кому интересно ядро... текст свёрнут, показать
     
  • 5.89, Вы забыли заполнить поле Name (?), 22:15, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну это не в той стране искал.

    Явки, пароли в студию. Не томи.

     
  • 3.83, Анон1110м (?), 19:49, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Судя по тем зарплатам которые предлагаются, то дешёвых программистов должно быть полно.
     
  • 2.29, Аноним (17), 16:10, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Небось и сейчас есть питонисты с такими заявлениями.
     
     
  • 3.37, Аноним (22), 16:25, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Все с этим согласятся потому что это правда.  
     
     
  • 4.40, Аноним (39), 16:41, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но с железом, да, туговато. Бруски не на чем делать.
     

  • 1.38, Самый Лучший Гусь (?), 16:30, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Достаточно ли производитетельности YJIT чтобы написать прошивку для газонокосилки теперь?
     
     
  • 2.41, Аноним (39), 16:43, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну если не ставить задачу, чтоб газонокосилка гонялась за хозяином, то должно бы.
     

  • 1.42, mustai (ok), 16:46, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В своё время начал изучать этот язык потому, что понравилось высказывание его создателя:
    "Человек создан для творчества, и я всегда знал, что люблю творить. Увы, я обделён талантом художника или музыканта. Зато умею писать программы. Я хочу, чтобы компьютер был моим слугой, а не господином, поэтому должен уметь быстро и эффективно объяснить ему, что делать."
    Юкихиро Мацумото, создатель языка Ruby
     
     
  • 2.44, Аноним (22), 16:49, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Люди которые любят что-то из-за чужих высказываний странные.
     
     
  • 3.94, Аноним (94), 23:01, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Отвечу, тому кто выше гадил Нет Тех кто продает воздух, зарабатывая деньги Те... большой текст свёрнут, показать
     
     
  • 4.98, Аноним (-), 00:08, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хм тогда тебе не стоит рот открывать, форум чище будет Вон чел сделал Руби, э... большой текст свёрнут, показать
     
  • 2.47, Аноним (47), 17:23, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.62, Аноним (47), 17:56, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.73, Аноним (-), 18:37, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.61, Аноним (17), 17:52, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Я хочу, чтобы компьютер был моим слугой, а не господином, поэтому должен уметь быстро и эффективно объяснить ему, что делать.

    Звучит как пользователь Алисы, а не программист.

     
  • 2.92, Вы забыли заполнить поле Name (?), 22:46, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В своё время начал изучать этот язык потому, что понравилось высказывание его
    > создателя:
    > "Человек создан для творчества, и я всегда знал, что люблю творить. Увы,
    > я обделён талантом художника или музыканта. Зато умею писать программы. Я
    > хочу, чтобы компьютер был моим слугой, а не господином, поэтому должен
    > уметь быстро и эффективно объяснить ему, что делать."
    > Юкихиро Мацумото, создатель языка Ruby

    На самом деле руби популярность получил благодаря dhh и рельсам.

     

  • 1.66, кепаса (?), 18:08, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    самый любимый и ахрененный язык, писал на нем прод код на замену шелл скриптов и ранбуки для Chef, сейчас иногда приходится что-то делать на Python так неудобно(
     
     
  • 2.91, Вы забыли заполнить поле Name (?), 22:41, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > самый любимый и ахрененный язык, писал на нем прод код на замену
    > шелл скриптов и ранбуки для Chef, сейчас иногда приходится что-то делать
    > на Python так неудобно(

    В чем нудобство?

     

  • 1.68, Bottle (?), 18:12, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.

    Вобрать-то он вобрал, но недовобрал в себя лучшие черты языка программирования Rust! Поэтому я анонсирую разработку языка Rusty, который вобрал в себя лучшие черты Ruby и Rust!

     
     
  • 2.74, Аноним (22), 18:40, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть уже такое. Ты опоздал. https://github.com/HalidOdat/rusty-lang
     
     
  • 3.90, Аноним (90), 22:35, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть уже такое. Ты опоздал. https://github.com/HalidOdat/rusty-lang

    весь код:
    [CODE]
    #[cfg(test)]
    mod tests {
        #[test]
        fn it_works() {
            assert_eq!(2 + 2, 4);
        }
    }[/CODE]
    Что у нас точно есть, так это не ходящие по своим же ссылкам кексперты.

     

  • 1.93, Nora Puchreiner (?), 22:53, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > ("it" подразумевает, что всегда имеется только один аргумент, а при указании "_1", не ясно, существует ли параметр "_2").

    Почему не ясно?

    Конечно, существует: '{a:1, b:2, c:3}.each { puts _2 }'

    А вот как это будет с 'it'

     
     
  • 2.96, Аноним (96), 23:30, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что вместо {a:1, b:2, c:3}.each скорее всего будет somename.each и сразу не очевидно массив somename или хэш.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру