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 обязательно


Обсуждение (120) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, ijuij (?), 14:31, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Мне нравится в 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 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ехал end через end.
     
  • 2.17, Аноним (17), 15:29, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Это делает 4 метода с case и это, конечно, позор. При этом напрямую написать было бы короче и проще для понимания.
     
  • 2.18, Ананий (?), 15:29, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    на Lua можно сделать это с помощью метатаблиц и с гораздо более читабельным кодом

     
     
  • 3.84, Фамилия (?), 20:17, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Для незнающих lua привели бы этот код
     
     
  • 4.152, anonymos (?), 04:54, 27/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Незнающим Lua, лучше почитать книжку про Lua. А вот показать, как расширяется Lua на С++, стоит:
    '''C++
    #include <lua5.4/lua.hpp

    /** Функция предоставляемая модулем */
    static int luasimd_query(lua_State* L)
    {
        // Получить параметр функции из Lua
        auto x = luaL_checkinteger(L, 1);
        // Передать результат в Lua
        if (x == 0)
            lua_pushinteger(L, 42);
        else
            lua_pushinteger(L, x);
        // В Lua передается один параметр
        return 1;
    }

    /** Стартовая функция модуля */
    extern "C" int luaopen_libsimd(lua_State* L)
    {
        // Структура с определением библиотечных функций для Lua
        struct luaL_Reg function[] = {
            { "query", luasimd_query },
            { NULL, NULL },
        };
        // Регистрация функций в Lua
        luaL_newlib(L, function);
        // 1 - это указатель на вершину стека Lua, где лежит новая таблица с функциями модуля
        return 1;
    }
    '''

    '''Lua
    local simd = require("libsimd")

    io.write("query = ", tostring(simd.query(0)), "\n");
    io.write("query = ", tostring(simd.query(1)), "\n");
    io.write("query = ", tostring(simd.query(2)), "\n");
    io.write("query = ", tostring(simd.query(3)), "\n");

    os.exit(true);

    --[[
    query = 42
    query = 1
    query = 2
    query = 3
    --]]
    '''

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

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

     
     
  • 4.117, Аноним (117), 11:55, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ЛЛМ говорит, что там должно быть слово "семантика" :)
     
     
  • 5.132, Аноним (132), 15:06, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ЛЛМ наводит суету и неразбериху там, где не следовало бы.
     
     
  • 6.144, Аноним (117), 20:03, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    забыл обернуть в теги "сарказм".
     
  • 4.137, Аноним (-), 16:31, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну пацаны, вы сами хотели этого я не виноват.

    Сема́нтика (от др.-греч. σημαντικός «обозначающий») — раздел лингвистики, изучающий смысловое значение единиц языка. Прочитайте Страуструпа он в своих трудах оперирует двумя терминами - семантика и синтаксис. Вам ПТУ-шникам его не понять, он птица высокого полёта.

    Семантика показана как второй, самый верхний уровень, охватываемый прагматикой и включающий синтаксис.

     
     
  • 5.143, Аноним (117), 20:01, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мне кажется операторы "when, end" делают семантику языка громоздкой.

    Семантика "громоздкой" не бывает!

    "смысловое значение единиц языка", то есть слова, несет конкретный (точный) смысл, если к слову языка применить понятие "семантически громоздкое", то смысл этого слова должен быть избыточный какой-то. Отсюда, если мы говорим, что операторы "when, end" "семантически громоздко", то оно должно означать, как я думаю, избыточность (то есть не одну функцию выполняют) функций этих самих операторов. Но ведь эти операторы выполняют необходимую, достаточную, конкретную функцию, в чем их избыточность ("громоздкость")?

    > Семантика показана как второй, самый верхний уровень, охватываемый прагматикой и включающий синтаксис.

    точно "прагматикой", может грамматикой?

     
  • 3.109, adolfus (ok), 10:30, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Максимально читабельный и понятный язык -- это кобол.
     
     
  • 4.131, Аноним (-), 15:02, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Максимально читабельный = болтливый (понятный с первого раза). Выразительный = короткий (зачастую непонятный с первого раза).

    Как найти ту золотую середину, чтобы язык имел одновременно два свойства читабельность и выразительность. Замена < end > символом < ; > делает язык выразительным не в ущерб читабельности.

     
     
  • 5.145, Аноним (117), 20:06, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Замена < end > символом < ; >

    разница лишь в два лишних символа, ничего от этого не изменилось.

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

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

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

     
     
  • 3.118, Аноним (117), 11:58, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > про какой-нибудь документооборот на 5-10 млн строк.

    что там должно быть на такое количество строк? Вероятно папка ноде_модулес.

     
  • 2.102, bdrbt (ok), 07:23, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это руби то читабельный? Руби читабельный, только в момент, когда, допустим, некая функция только что написана и прошла тесты, когда всерьёз начинаешь его оптимизировать (а без этого всё совсем печально) - получается нечитабельные марсианские манускрипты.
     
  • 2.105, дилетант (?), 09:09, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, мультиметоды в лиспах гораздо читабильней. стали не нужны рельсы - стал не нужен руби. я так думаю.
     
     
  • 3.115, Аноним (115), 11:19, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > стали не нужны рельсы - стал не нужен руби.

    [s]группа одного хита[/s] язык одного фреймворка.

     
  • 2.124, Аноним (124), 13:58, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В каком месте это легко читать? Как IDE должа находить такие методы?
     
     
  • 3.151, Аноним (-), 03:45, 27/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Как IDE должа находить такие методы?

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

     

  • 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 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Его никогда и не использовали в проде. Это язык одного фреймворка - рельсов, вот их использовали, и да, они себя изжили. А больше нигде его и не было.
     
     
  • 3.82, Аноним Анонимович Анонимов (?), 19:47, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Vagrant, например, написан на руби, живее всех живых.
     
     
  • 4.150, Аноним (150), 02:27, 27/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Его уже переписывают на Go
     
  • 2.20, Бывалый Смузихлёб (ok), 15:41, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ну на яблоке используют. В pod-файлах установочника сторонних модулей и корректировки любой возникающей ерудны
     
     
  • 3.140, Аноним (140), 18:21, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    менеджер пакетов brew для макоси туда же
     
  • 2.22, Аноним (22), 15:46, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Загибай пальцы. Гитхаб, гитлаб, твитч Какая фигура у тебя на руке получилось?
     
     
  • 3.57, Аноним (17), 17:48, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Довольно ничтожная. Такая же фигура получалась 5 лет назад когда считали кто всё ещё на mercurial сидит. С тех пор и те три пальца разогнулись.
     
  • 2.59, Facemaker (?), 17:49, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Его ещё используют в проде или он изжил себя?

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

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

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

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

     
  • 3.104, Аноним (104), 08:28, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >на Rust. Писать так же легко и быстро

    Hello, World!, и то, если зазубрить, как.

     
     
  • 4.106, Аноним (106), 09:14, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В отличие от JIT-компилятора MJIT новый YJIT применяет версионирование базовых блоков (LBBV - Lazy Basic Block Versioning) вместо обработки методов целиком и реализован в форме интегрированного JIT-компилятора, написанного на языке Rust.

    Ага. Новость-то прочитай.

     

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

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

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

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

     
     
  • 3.110, adolfus (ok), 10:47, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > он вобрал в себя лучшее из худших языков в истории.

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

     
  • 2.48, Аноним (48), 17:32, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.49, Аноним (48), 17:34, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 3.55, Аноним (17), 17:46, 25/12/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.72, Вова (?), 18:37, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для популярности нужны деньги, а не хорошесть.
    Чем популярен Киркоров? Опра Уинфри? Джигурда? Вот-вот. :)
     
     
  • 3.77, Аноним (17), 19:15, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Они популярны своими выступлениями Не было бы выступлений, не было бы денег Ты... большой текст свёрнут, показать
     
     
  • 4.85, Аноним (85), 20:17, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хм а как это язык взлетел если даже вакансий нету А если посты пишут не за ... большой текст свёрнут, показать
     
     
  • 5.126, Аноним (126), 14:11, 26/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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У десятка тысяч настоящий обезьян случайно барабанящих по клавишам больше шансов написать что-то стоящее чем у этих джунов.
     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Админы локалхостов с 0 001 RPS нагрузки могут хоть на AVR ках или эльбрусах запу... текст свёрнут, показать
     
     
  • 9.79, Аноним (22), 19:20, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот ты и прокололся Для сколь-нибудь серьезного применения арендные сервера ни... текст свёрнут, показать
     
     
  • 10.100, Аноним (100), 01:36, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В таком случае можешь пересчитать изжержки на стоимость железных серверов В так... текст свёрнут, показать
     
  • 10.147, Аноним (147), 22:49, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ясно, серьёзнее офиса с шарой ты ничего не видел ... текст свёрнут, показать
     
  • 9.101, User (??), 07:01, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    О, а вот и хайлоадеры из 2004 подъехали облака, гибридные облака, эластичные вы... текст свёрнут, показать
     
     
  • 10.119, Аноним (117), 12:07, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    откуда в 2004 облака ... текст свёрнут, показать
     
     
  • 11.121, User (??), 12:57, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так и я говорю, что не слышали и по привычке х10 core2duo с LA 100500 в кладов... текст свёрнут, показать
     
     
  • 12.122, Мне хватает (?), 13:51, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не держит, просто рассказывает как надо Вы не привыкли к этому в интернете еще ... текст свёрнут, показать
     
  • 12.127, Аноним (117), 14:12, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    не по привычке, а по слешдот-эффекту, запас прочности ... текст свёрнут, показать
     
     
  • 13.128, User (??), 14:20, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Юз ХПА, Люк И ДДЫДОС протекшн И ЦДН, и А впрочем, и так сойдет ... текст свёрнут, показать
     
     
  • 14.135, Аноним (117), 16:13, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    слешдот-эффект и ддыдос разные понятия, для борьбы с ддыдосом не покупают лишние... текст свёрнут, показать
     
  • 3.30, Вы забыли заполнить поле Name (?), 16:10, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Залежи дешевого железа не нашёл.
     
     
  • 4.31, Аноним (22), 16:13, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну это не в той стране искал.
     
     
  • 5.33, Аноним (17), 16:17, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    10x расходов на железо в любой стране 10x.
     
     
  • 6.36, Аноним (22), 16:24, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если ты завозишь по левому импорту через три страны, то нет.
     
     
  • 7.53, Аноним (17), 17:41, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё раз, 10x расходов на железо в любой стране 10x. Читайте пока не поймёте что написано.
     
     
  • 8.80, Аноним (22), 19:21, 25/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё раз это копейки по сравнению с ценой программиста в нормальной стране Норма... текст свёрнут, показать
     
     
  • 9.141, Аноним (124), 18:31, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    До тех пор, пока ему не найдут индуса на замену ... текст свёрнут, показать
     
  • 6.130, Аноним (140), 14:59, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Желающих писать на питоне в разы больше, чем на Руби. У питона с производительностью всё хуже, чем у Руби. Значит проблем с железом в этом мире нет.
     
  • 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 +/
    Но с железом, да, туговато. Бруски не на чем делать.
     
  • 2.108, wyry (ok), 10:11, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И тогда и сейчас это глупости. В реальной жизни крайне часто бывают проблемы с производительностью таких систем. 9 женщин не родят ребёнка за месяц, а увеличение железа не всегда приводит к увеличению производительности системы, а в ряде случаев может даже её замедлить, если плохо спроектирована переадресация данных/задач.
     
  • 2.129, Анониссимус (?), 14:43, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Всё просто. Существуют разные проекты. Если мы пишем движок для нейросети, то оборудование будет дороже программиста. Если пишем условный сервис для бекапа, который вызывается раз в день, то программист дороже оборудования.
     
     
  • 3.136, Аноним (136), 16:21, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Всё просто. Существуют разные проекты. Если мы пишем движок для нейросети, то
    > оборудование будет дороже программиста. Если пишем условный сервис для бекапа, который
    > вызывается раз в день, то программист дороже оборудования.

    Ну мыж на опеннете, тут несколько другие критерии:
    1) ЯП для утилиты, запускаемой раз в месяц (или вообще, при миграции какого-то софта), должен быть Ъ, иначе "нинужна!"
    2) Если такой утилиты на Ъ ЯП нет (потому что никто не хочет писать кучу бойлерплейткода и самописных лисапедов), то утилита - "нинужна!"


     

     ....большая нить свёрнута, показать (37)

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

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

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

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

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

     

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

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

     
     
  • 3.112, Аноним (-), 10:49, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В отвратительном синтаксисе? Не знаю как у анонима, а у меня лично питон вызывает рвотный рефлекс именно своим синтаксисом.
     
     
  • 4.148, Аноним (147), 22:54, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуй перл, тебе понравится
     

  • 1.68, Bottle (?), 18:12, 25/12/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     

     ....ответы скрыты (3)

  • 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 или хэш.
     
  • 2.125, Аноним (124), 14:06, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Почему не ясно?

    В нормальных языках аргументы и переменные объявляются явно
    ocaml
    fun i -> i + 1
    haskell
    \i -> i + 1

     

  • 1.123, Аноним (124), 13:56, 26/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот бы ещё популярность всяких питонов и жабоскрипов упала бы до уровня руби и перла.
    >"it" подразумевает, что всегда имеется только один аргумент, а при указании "_1", не ясно, существует ли параметр "_2"

    write only. А если взять функции первого класса, то вообще городить этот огород не понадобится. А проболема по тому, что в руби сделали скобочки не обязательными
    >Продолжена оптимизация производительности JIT-компилятора YJIT

    Вместо того, чтобы сделать вывод типов по Хиндли-Милнеру, как в компилируемом хаскеле или окамле, они десятилетиями пытаются разогнать интерпретатор.

     
     
  • 2.133, Аноним (140), 15:09, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    JS/TS точно никуда не денутся. Python может и вымереть по мере автоматизации задач машинного обучения и внедрение их везде в стандартные сервисы.

    Но вряд ли это поможет Ruby, хотя язык, безусловно, приятный.

     
     
  • 3.146, Аноним (124), 22:42, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Но вряд ли это поможет Ruby

    Я не за руби, я против этих двух языков

     

  • 1.138, Аноним (138), 16:50, 26/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну шо там ? Очередной убийца с\с++ :D Ребята а помните Perl какой изящный синтаксис! Стихи писать можно!
     
     
  • 2.139, Аноним (139), 18:03, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Блин, а я всегда считал, что руби и перл одно и то же.
     
     
  • 3.149, Аноним (147), 22:55, 26/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тонко
     

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



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

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