The OpenNET Project / Index page

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

Выпуск языка программирования Ruby 2.5.0

25.12.2017 21:55

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

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

  • В блоках do/end теперь допустимо напрямую использовать секции rescue, else и ensure;
  • Определён метод yield_self для выполнение операции yield с блоком в его контексте. В отличие от tap, метод возвращает результат выполнения блока;
  • Поддержка измерения покрытия (coverage) тестовым кодом веток и методов. Покрытие ветки показывает то, какие ветки были выполнены в процессе выполнения тестов, а какие нет. Покрытие метода показывает какие методы были вызваны, а какие нет;
  • Добавлены новые методы Hash#slice и Hash#transform_keys;
  • Конструктор Struct.new теперь может создавать классы, принимающие именованные аргументы (keyword arguments);
  • Перечисляемые предикаты последовательностей (#any?, #all?, #none? и #one?) теперь могут принимать аргументы в виде шаблона;
  • Прекращено использование констант верхнего уровня (top-level) с тем же именем, если поиск класса в указанной области видимости не увенчался успехом;
  • Включена автоматическая загрузка библиотеки pp.rb без необходимости указания в коде 'require "pp"';
  • Изменён на обратный порядок вывод трассировки (backtrace) и сообщения об ошибке (вначале идут вызовы, начиная со старых и заканчивая свежими, а в конце выводится сообщение об ошибке);
  • На 5-10% увеличена производительность за счёт удаления инструкций "trace" из байткода. При необходимости применения TracePoint теперь осуществляется динамическое изменение последовательностей инструкций (ISeqs). В итоге в обычных условиях, когда не используется TracePoint, устранены лишние накладные расходы, за счёт их существенного повышения на этапе включения трассировки;
  • Примерно в три раза ускорена передача блоков через параметры блока (например def foo(&b); bar(&b); end);
  • IO#write теперь может принимать несколько аргументов, компонуя выходные данные из нескольких буферов;
  • Переписана реализация мьютексов. Размер rb_mutex_t уменьшен со 160 до 80 байт;
  • ERB (Embedded RuBy) теперь генерирует код из шаблонов, который выполняется в два раза быстрее, по сравнению с Ruby 2.4;
  • Увеличена производительность некоторых встроенных методов, включая Array#concat, Enumerable#sort_by, String#concat, String#index и Time#+ ;
  • IO.copy_stream переведён на использование системного вызова copy_file_range, который позволяет ускорить выполнение операций копирования данных из одного файла в другой файл с выполнением операции только на стороне ядра, без предварительного чтения данных в память процесса в пространстве пользователя;
  • SecureRandom теперь использует предлагаемый операционной системой генератор псевдослучайных чисел (/dev/urandom) вместо OpenSSL RNG;
  • Библиотеки cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr, scanf, sdbm, stringio, strscan, webrick и zlib из стандартного набора библиотек переведены в категорию устанавливаемых по умолчанию gem-пакетов;
  • Обновлены версии Onigmo 6.1.3, Psych 3.0.2, RubyGems 2.7.3 и RDoc 6.0.1;
  • Добавлена поддержка спецификации Unicode 10.0.0;
  • По умолчанию включена настройка Thread.report_on_exception, упрощающая отладку многопоточных программ.


  1. Главная ссылка к новости (https://www.ruby-lang.org/en/n...)
  2. OpenNews: В RubyGems выявлена удалённо эксплуатируемая уязвимость
  3. OpenNews: Несколько уязвимостей в RubyGems
  4. OpenNews: Выпуск языка программирования Ruby 2.4.0
  5. OpenNews: Язык Crystal пытается совместить производительность Си и удобство Ruby
  6. OpenNews: Релиз web-фреймворка Ruby on Rails 5.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47806-ruby
Ключевые слова: ruby
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (89) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, zo0M (?), 22:55, 25/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Почему Ruby получил такое слабое распространение(имею ввиду что дальше рельс не ушел), если он такой классный?
     
     
  • 2.7, Аноним (-), 23:15, 25/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну вообще-то большинство macos с менеджером пакетов brew на руби, а в suse/opensuse linux большинство сприптов на нём... Для начала....
     
     
  • 3.40, Аноним (-), 10:55, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Ах вот оно почему на OpenSuse скрипты жрут столько ресурсов так тупят!!! При обновлениях системы 4 ядра глотаю по 100% каждое, и крутится все это по пол часа.
    Хороший язык!!! Мне нравится!!!
     
     
  • 4.44, Интересующийся (??), 11:56, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Чего, чего Вы там глотаете?
     
     
  • 5.61, Anon123 (?), 15:06, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Он прав в плане прожорливости. Только лично я не знаю что именно жрет столько.
     
  • 2.8, Аноним (-), 23:19, 25/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Не было мегакорпораций за спиной.
     
     
  • 3.35, Аноним (-), 10:27, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    У Питона тоже за спиной мегакрапораций не видится.
     
     
  • 4.39, Fidel Castro (?), 10:41, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    был гугл
     
     
  • 5.75, Аноним (-), 21:41, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    и дропбокс
     
  • 3.94, имя (?), 13:19, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    yahoo использовали активно
     
  • 2.11, непох (?), 23:28, 25/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Потому что Matz всем постоянно расказывал, что производительность это не главное, и вообще с ней все ОК, а потом оказалось, что совсем не ОК. И теперь надо делать Руби 3, который на самом деле ничего уже не решит.
     
     
  • 3.15, Аноним (-), 23:41, 25/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Потому что Matz всем постоянно расказывал, что производительность это не главное, и
    > вообще с ней все ОК, а потом оказалось, что совсем не
    > ОК. И теперь надо делать Руби 3, который на самом деле
    > ничего уже не решит.

    https://www.techempower.com/benchmarks/

    Всем на ulib/c++ веб приложения писать? Или, может быть, Ur хотите освоить?....

     
     
  • 4.17, непох (?), 00:04, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Можно писать для python, node, java, ocaml, go, и для много чего другого и везде будет гораздо быстрее и будет потреблять меньше памяти. И ничего с этим уже не сделать.

    И что более забавно, куча народу разразненно тратит время на оптимизацию производительности:
    * Vladimir Makarov вот потратил своего времени: https://github.com/vnmakarov/ruby (RTL/JIT)
    * Takashi Kokubun тоже не просиживал шатны даром: https://github.com/k0kubun/yarv-mjit (просто JIT)
    * Koichi Sasada, автор текущей VM, тоже что-то свое делает

    Сам Matz никаких сигналов по поводу выбора новой VM не дает, что именно попадет в Руби 3 не ясно. Более того, если вспомнить историю разработки V8, непонятно, почему не была создана отдельная група, единственной задачей которой была бы производительность VM.

    А все это надо было начать делать еще 3–4 года назад, а не заниматься MRuby и подобной чепухой.

     
     
  • 5.33, waylandbeliver (ok), 09:58, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Думаю эти три команды в какой-то момент обсудят общие наработки +  IBM либо выкинет, либо наконец допилит свою гитлер-машину для ускорения руби и других скриптовых языков.
     
     
  • 6.55, непох (?), 14:20, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там нечего обсуждать, все уже давно обсудили, нужно сделать выбор в пользу одной из этих веток и пилить дальше. Даже если IBM что либо выкинет прямо сегодня, в Руби оно окажется слишком поздно :(

    На этом фоне кортрастирует Go, в котором медленно, но регулярно вносятся значительные качественные изменения.

     
  • 5.76, Аноним (-), 21:51, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если вы не в курсе внутренней кухни то не нужно ляля, а с хотите и почитайте багтрекер. Vladimir там отписывается. И там же мнение Матза можете почитать и как они впиливали yarv в руби тоже есть. mruby вы похоже опять же не в курсе что куда и почему. Вы еще jruby забыли обосрать, а в прогрессивные языки котлин добавить и свифт.
     
     
  • 6.86, непох (?), 01:57, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очень даже я в курсе И выводы сделал исходя и чтения багтрека и просмотра высту... большой текст свёрнут, показать
     
     
  • 7.95, Аноним (-), 14:02, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >In any way, I'd suggest you take a YARV step for a big change like your proposal.
    >When the early stage of the development of YARV, Koichi created his virtual machine as a C extension.
    >After he brushed it up to almost complete, we replaced the VM.

    https://bugs.ruby-lang.org/issues/12589#note-2
    Я конечно мысли не читаю, но насколько понимаю. Когда им за пилят нормально работающую VM тогда они её и заменят, естественно с обратной совместимостью. Естественно Матз имеет много власти, а Линус или Пайк не имеет? С тем опенсорсом что сталкивался протолкнуть патчик с фичами это практически всегда боль и страдания.
    Может быть это только у меня так.
    mruby используют на роутерах(SA-W1) в японии. Думаю это не единственное место где его используют.

     
     
  • 8.99, непох (?), 16:13, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gt оверквотинг удален Сразу всем стало легче от того, что МРуби используют на ... большой текст свёрнут, показать
     
     
  • 9.100, Аноним (-), 17:06, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    На таких девайсах еще очень широко и неоправданно много используются sh-скрипт... текст свёрнут, показать
     
     
  • 10.102, непох (?), 19:39, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я не знаю ни одного проекта где Луа заменяет Бэш Вот например nmap 8212 с... текст свёрнут, показать
     
  • 7.104, Аноним (-), 23:19, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если бы вы были в курсе то не несли бы всякую фигню. https://bugs.ruby-lang.org/issues/14235
     
     
  • 8.105, непох (?), 03:24, 30/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну-ну, посмотрите на даты в этом тикете и на то, что в конечно счете собираются ... текст свёрнут, показать
     
  • 5.80, Аноним (-), 22:11, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Можно писать для python, node, java, ocaml, go, и для много чего
    > другого и везде будет гораздо быстрее и будет потреблять меньше памяти.
    > И ничего с этим уже не сделать.

    Скажем прямо, в отношении python - это откровенная ложь. Он давно медленнее и жрущее по памяти, чем новые версии руби.
    Node - чуть лучше
    Java - быстрее, но не лучше по памяти + низкая скорость разработки
    Go - ещё ниже скорость разработки и корявость синтаксиса
    Ocaml - слишком толсто....

    Вариант c Elixir - ок, но почему-то он не предлагался


     
     
  • 6.84, непох (?), 01:44, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я очень даже представляю, что Python Django это может быть до 200МБ памяти Ra... большой текст свёрнут, показать
     
     
  • 7.93, Аноним (-), 11:11, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Я очень даже представляю, что Python + Django это может быть до 200МБ памяти. Rails? Сомневаюсь, что-то минимальное, вроде блога, это минимум 300МБ, нормальный проект с админкой, легко до 800.

    Rails - довольно тяжеловесная штука. Ну так и возможности её по сравнению с Django "несколько" больше. Банально - плата за скорость разработки и минимизацию объема собственного кода. Хотите легковесное - берите Sinatra или Middleman. Нужно больше - Hanami. А если уж для Hello world тащить Rails, то да, мучайтесь.

    То же можно сказать про Java. Если веб-приложение для Hello World писать на Spring MVC, то его потребление ну никак не мегабайты...

     
     
  • 8.96, Аноним (-), 14:05, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Middleman - совсем из другой оперы И имхо его нужно усыпить Фичастая конечно ш... текст свёрнут, показать
     
  • 8.98, непох (?), 16:05, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Hanami тоже отжирает немало, Django фичастее и экономнее В принципе это логично... текст свёрнут, показать
     
  • 4.36, Аноним (-), 10:31, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а что, с ВебАсмом можно и на C++.
     
     
  • 5.68, M i M (?), 16:39, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Причём тут WebAssembly, когда речь про back end?
     
  • 4.59, Пользователь Debian (?), 14:57, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пишите на Go.

    У меня тут на работе код на Go, а функциональные тесты — на руби (так получилось).

    Когда они поставлены рядом, разница верна невооружённым взглядом: руби совершенно не хочется трогать никому на проекте.

     
     
  • 5.97, kuraga (ok), 14:36, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Пишите на Go.
    > У меня тут на работе код на Go, а функциональные тесты —
    > на руби (так получилось).
    > Когда они поставлены рядом, разница верна невооружённым взглядом: руби совершенно не хочется
    > трогать никому на проекте.

    А конкретные причины (знаю Ruby, не знаю Go)?

     
  • 2.12, Аноним (-), 23:32, 25/12/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    SQL тоже как-то не ушел дальше БД :)
    Серьезно, "rails и тусовка вокруг него" - уже достаточно значимое явление, не каждому ЯП такое перепало.
     
     
  • 3.19, SubGun (ok), 00:16, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Серьезно, "rails и тусовка вокруг него" - уже достаточно значимое явление, не
    > каждому ЯП такое перепало.

    Ну надо же с кем-то поделиться болью по поводу обновления проектов до новой версии руби и рельсов.

     
     
  • 4.29, Anonim (??), 08:32, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, у питона и егошной джангой конечно этого нет.... При переезде на новую версию. Две версии языка до сих пор тянут.
     
     
  • 5.46, ЫгиПгт (?), 12:21, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так никто и не говорит, что этого нет в других языках. Но блин, делать еще один зашкварный язык - это такое себе. Получается адский зоопарк, когда один проект на 1.8, другой - на 2.0, третий - на 2.3. А рефакторинг дороже написания с нуля под новую версию.
    Вот выйдет 3.0, думаете все кинутся на него переходить? Да просто в зоопарке появится еще один зверек. И сопровождать это с годами, поддерживая в рабочем состоянии, все сложнее.
     
     
  • 6.72, Аноним (-), 20:18, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1.8 уже нигде не осталось. Слишком старый. Остальные эволюционно совместимы

     
  • 2.13, нах (?), 23:35, 25/12/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    для однострочников и повседневной админской деятельности - слишком высок порог вхождения.

    Для средних задач - слишком тяжеловесно и неудобно, плюс dependency hell и "версия может быть только самая наираспоследняя". У пехепе почти то же самое, поэтому рельсы немножко проехали.

    В энтер-прайсе не нужна вторая жаба, у них одна уже есть.

     
     
  • 3.24, хехе (?), 03:34, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У пехепе почти то же самое

    При определённом стиле кодирования в пехепе нет никаких "слишком тяжеловесно и неудобно, плюс dependency hell и "версия может быть только самая наираспоследняя".

    И как-то не наблюдается "дайте больше ядер и памяти и дисков" в отличие от рубистов и джанговодов.

     
     
  • 4.26, Аноним (-), 04:25, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > не наблюдается "дайте больше ядер и памяти и дисков"

    Доооо... Обожаю из своей админский биографии вспоминать наезд руководства по поводу лагов не мной написанного сайта на не мной выбранном "пехепе" с мускулом: "Новый сервер просить любой дурак может, а ты сделай, чтобы нормально работало". А шевелился он тогда реально еле-еле, на очень неплохом по тем временам Пролианте.

     
     
  • 5.28, Агроном (?), 08:09, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    То есть сайт плохо спроектировали и реализовали, а виноват пехепе?
     
     
  • 6.32, Очередной аноним (?), 09:09, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Точнее - виноват админ
     
  • 6.63, Аноним (-), 15:18, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Виноват разработчик сайта. Либо тем, что выбрал не тот язык, либо тем, что криво написал на языке, который может нормально исполняться. Я тогда убрал с того сервера отгрузку статики, потвикал настройки пхп-фпм и мускула и оно кое-как стало работать. Но сайт переписывать - уж извините.
     
  • 5.37, amonymous (?), 10:37, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Просто обезьянки-любители ZF, Yii и прочих ларавелов забыли, что кроме их личного удобства есть ещё куча параметров, которые требуют нормального проектирования, а не шаблончиков. И сделали как обычно. Пых всем хорош, кроме попытки сделать из него MVC, которое на минутку бородато и с моделью работы per request вяжется плохо.


     
     
  • 6.43, хехе (?), 11:29, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Я вот который день ссаными тряпками гоняю всех: пехепешников, джанговодов и рельсоводов.
    А всё почему? Да потому, что таблицы из своих убер-фреймворков создать мы могём, а индексы на полях, отличных от PK, не могём. Иногда потому, что для максимального значения 200 байт выбирается longtext, ну а чо, с запасом же, а оно внезапно не даёт сделать индекс просто так, а задать длину уже рокет сайнс :)
    И чтой-то у нас тормозит выборка по уникальному значению, коннекты заканчиваются и ЦПУ на 90% загружен, подать сюда админа, надо системные настройки и ведро тюнить.
     
     
  • 7.60, ttt (??), 15:01, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    уже много лет рельса поддерживает ВСЕ индексы. читайте доки, предварительно помыв руки от тряпок грязных
     
     
  • 8.64, Аноним (-), 15:20, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Доки следует читать пехепешникам, джанговодам и рельсоводам Чтобы не получить о... текст свёрнут, показать
     
     
  • 9.65, хехе (?), 16:05, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Жму руку, хоть кто-то не просто читатель, но и пониматель ... текст свёрнут, показать
     
  • 7.81, Аноним (-), 22:52, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    индексы - это разве не пипец? Их же обновлять очень дорого?
     
     
  • 8.90, amonymous (?), 10:35, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Индексы - это трейдофф Теряем производительность при записи, избавляемся от фул... текст свёрнут, показать
     
  • 6.66, пох (?), 16:19, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Пых всем хорош, кроме попытки сделать из него MVC

    ну так либо шашечки, либо ехать. Либо слишком низкоуровнево и закатывать солнце каждый день вручную, либо обратно MVC...то есть фреймворк получаетсо. Если ты его выпилишь сам - поздравляю, шарик, ты балбес - потому что времени это, вместе с "нормальным проектированием" заняло в сто раз больше, чем героически одолеть любые подводные камни в любом существующем. А проекты все равно живут не вечно, иногда настолько невечно, что и вебархив не успевает их сохранить.

    Причем на фреймворки-то спрос есть, не смотря на кучу конкурентов, а на голом ruby как-то вот никто ничего толком и не пишет. Даже одноразовых поделок, которых полно на том же пехепе, не говоря уже про пихон.

     
     
  • 7.91, amonymous (?), 10:44, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Закатывать солнце вручную - это опять же удел обезьянок При нормальном дизайне ... большой текст свёрнут, показать
     
  • 6.69, KonstantinB (ok), 17:58, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    MVC - это три буквы, которые каждый понимает по своему.
    Изначально MVC - это общий архитектурный паттерн, а не конкретный design pattern. И во всяких Yii и Laravel реализован далеко не лучший вариант - прежде всего из-за анемичных моделей.
    Если смотреть на этот термин в изначальном смысле - все вяжется: там идет речь о отделении бизнес-логики от логики представления и ни о чем больше. Такое разделение абсолютно естественно вряд ли существует модель работы, с которой оно несовместимо.
     
     
  • 7.92, amonymous (?), 10:48, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    В случае вебни все очень сложно с "V". Часть дата репрезентейшн на клиенте, а сам вид вырождается в темплейты.

     
  • 3.47, Qasta (ok), 12:41, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В энтер-прайсе не нужна вторая жаба, у них одна уже есть.

    По динамичности (что просто ПЦ для больших проектов) ruby даст фору даже javascript-у. Брать ruby в энтерпрайз - всё равно, что в детский сад принести гранаты и детонаторы. Может ничего и не взорвут, конечно, но маловероятно.

     
     
  • 4.82, Аноним (-), 22:53, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в Github Inc. то и не знали.
     
  • 3.85, Аноним (-), 01:56, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Высокий порог вхождения? Да ладно!
     
  • 2.20, Аноним (-), 00:40, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему Ruby получил такое слабое распространение(имею ввиду что дальше рельс не ушел), если он такой классный?

    Почему Tcl/Tk получил такое слабое распространение, если он такой классный?

     
     
  • 3.41, Аноним (-), 11:01, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Синтаксис Tcl ужасен, глядя на то, как выглядит Tk на современном десктопе, плакать хочется кровами слезами.
     
     
  • 4.51, Аноним (-), 13:53, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Если б взлетел, то и внешний вид Tk поддерживали бы на современном уровне. Но некому.
     
  • 4.57, Пользователь Debian (?), 14:53, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Занятно, что в Windows и Mac OS X он выглядит превосходно.

    "Секрет" в том, что там гуи нативные, а в никсах у нас всё время был toolkit hell.
    И он до сих пор есть, просто два тулкита (да что уж там, в общем-то, один) остались...

     
  • 4.67, пох (?), 16:24, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Синтаксис Tcl ужасен

    не то чтобы прям ужасен, но совершенно непохож ни на си, ни на шелл - а больше ничего в головах у большинства не укладывается. Поэтому перлы, пехепе и пихон - наше всьо.
    Тот анон бы еще спрашивал, почему никак не взлетит ocaml.

    И да, Tk так выглядит потому что в 90е так было - красиво. А с тех пор, увы, желающих переделывать виджеты не нашлось.

     
  • 2.27, Ю.Т. (?), 08:03, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Потому что хороший парень - не профессия.
     
  • 2.31, Аноним (-), 09:01, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    потомучто набор антипаттернов
     
  • 2.45, Hellraiser (??), 12:03, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > имею ввиду что дальше рельс не ушел

    если кто-то кроме рельс ни о чём не слышал - это не означает, что кроме рельс ничего другого больше не существует

     
  • 2.62, andydem (?), 15:06, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Интересная статья на эту тему: http://www.realcoding.net/articles/pochemu-ruby-i-python-ne-mogut-zanyat-mest
     
     
  • 3.77, Аноним (-), 21:58, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    2008 год вы серьезно? уже и скалу зарыли давно а Java рассматривают как прокладку к JVM
     
     
  • 4.78, нах (?), 22:07, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > 2008 год вы серьезно?

    ну аргументы-то там разумные (разумно ли оценивать популярность по запросам к непонятно даже, чему - другой вопрос)

    и действительно, ничего из перечисленного не взлетело, ну разьве что пихона стало побольше за счет остальных. Зато у нас есть rust, go, и npm leftpad...простите, node.js.

     
     
  • 5.108, SkyNet (??), 11:49, 05/03/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> 2008 год вы серьезно?
    > ну аргументы-то там разумные (разумно ли оценивать популярность по запросам к непонятно
    > даже, чему - другой вопрос)
    > и действительно, ничего из перечисленного не взлетело, ну разьве что пихона стало
    > побольше за счет остальных. Зато у нас есть rust, go, и
    > npm leftpad...простите, node.js.

    разумного там, лишь то, что он может высказывать свое мнение,

    а все аргументы - как у человека никогда не изучавшего языки(что очень печально для программиста), взять энциклопедические даты создания языков, помножить на сказочные рандомные цифры tiobe, натянуть на глобус самомнения, и психологический парадокс выжившего выдать за логический анализ...
    А реальность абсолютно другая - все языки (не только программирования) смертны, некоторые пытаются реанимировать разными ресурсами, продлевая агонию, формируя зомби, кто-то наоборот считает, что все иные языки должны - "скончаться", но суть только одна: все языки - неадекватны, всем языкам требуется библиотеки/фрейворки, нужны адекватные адепты и послушники, сеньеры и джуниоры;
    а вывод есть только один, если кто-то вкладывается в язык (хоть латынь, хоть си), то этот инструмент должен окупаться в использовании, и это никак не связанно с мнением программистов(нашим), это суть экономики(которой как-то совсем начьхать на наше мнение, и удобство).
    Все перечисленные(по ссылке) языки победители - языки обдолбанные (государственными/банковскими/военщиной) деньгами, чтож будем посмотреть, как долго программисты будут эту ходячую гниль использовать...

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

     
  • 2.87, Ordu (ok), 02:36, 27/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    tldr; Потому что есть python.

    ruby не может бороться с python'ом просто потому, что python везде, а вот ruby -- нет. Ruby ещё поставить надо, а python уже установлен в системе. Человек который не сталкивался ни с тем, ни с другим, скорее всего выберет python именно по этой причине, а потом у него не будет веских причин переключаться на ruby, потому что python вполне в состоянии справляться с задачами этого человека. И даже если в ruby это делается удобнее, то это абсолютно неочевидно для того, кто не знаком с ruby.

    Но дело не только в этом. Дело ещё и в том, что популярность языка способна к самоподдержанию. Так было с fortran'ом когда-то, так происходит с C сейчас. И так происходит с Python. Популярность -- это количество поддерживаемых и развиваемых библиотек, популярность -- это количество ответов на stackoverflow. Связываться с чем-то непопулярным -- значит рисковать тем, что ответы на вопросы придётся не в гугле находить, а задавать в сообществах и ждать ответа, это значит рисковать тем, что какие-нибудь располезнейшие библиотеки не существуют для выбранного языка. А это не всем надо.

    Есть ещё всякие заморочки, связанные, например, с тем, что python в силу своей популярности, имеет много реализаций, которые, поддерживая один и тот же язык, делают это по разному, с разными последствиями во время выполнения программы. Это даёт гибкость, которую ruby не достигнет, если не наберётся критическая масса тех, кому эта гибкость нужна. Ну или, альтернативно, не найдётся корпорация, которая проспонсирует эту гибкость.

    "Классность" языка и его распространённость -- это, вещи связанные, но не в экстремальных случаях. Когда язык занимает существенную часть какой-то ниши в программировании, то там начинают действовать иные правила, связь между "классностью" и распространённостью рвётся.

     

  • 1.21, Аноним (-), 01:29, 26/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему не Python или JavaScript? В чем тут преимущество?
    Кроме недостатка Runtime библиотек и какой-то странноватой философии.
     
     
  • 2.30, Аноним (-), 08:42, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > почему не [...] JavaScript?

    нормальный синтаксис (не у JavaScript).

     
     
  • 3.34, Аноним (-), 10:05, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    таки у js и есть нормальный синтаксис, в отличие от этого второго перла
     
     
  • 4.56, Аноним (-), 14:33, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > таки у js и есть нормальный синтаксис

    нормальный, да куча тонкостей, которые бы следовали сделать более строгими.

     
     
  • 5.74, Аноним (-), 21:33, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И получился бы не пойму толи Java толи С#?
     

  • 1.22, Аноним (-), 01:56, 26/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пропустили в новости, что Bundler теперь не надо отдельно устанавливать.
     
     
  • 2.23, Арс (?), 03:34, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Надо, в последний момент вырезали его.
     
     
  • 3.25, Аноним (-), 03:47, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Точно! За 3 дня до релиза. Извиняюсь был не прав.
     

  • 1.42, iZEN (ok), 11:24, 26/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Не помню, для чего нужен Ruby. Вроде бы для сборки Node.js, а тот нужен для сборки Iridium-browser. Но в конечном итоге Ruby и Node.js используются только на этапе сборки, а ни в каком больше рантайме не используются - поэтому можно безболезненно удалить. Но на саму их сборку тратится час шестиядерного процессора!
     
     
  • 2.48, amonymous (?), 13:10, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Любители rebuild (hello)world должны страдать.
     
     
  • 3.53, iZEN (ok), 14:11, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так сборка в фоне происходит. Страдают линуксоиды, у которых время реакции ядра резко замедляется. Бздишники затыков не замечают.
     
     
  • 4.58, amonymous (?), 14:55, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня этой сборки в фоне не происходит никогда. Что я делаю не так?
     
     
  • 5.71, Аноним (-), 18:25, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У меня этой сборки в фоне не происходит никогда. Что я делаю не так?

    Любишь блобики, не любишь кастомную сборку "под себя". Возможно обожаешь проприетарь?
    Не знаю, собирал с "WITHOUT_DEVCRYSTALBALL" и "WITHOUT_LIBASTRAL". Возможно зря.

     
     
  • 6.73, anomymous (?), 20:20, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да. Очень люблю блобики CentOS, они позволяют не греть воздух впустую, пересобирая велосипеды.
     
  • 2.49, Sw00p aka Jerom (?), 13:43, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Какой ещё час на сборку ruby?
     
     
  • 3.52, iZEN (ok), 14:10, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ruby+Node.js
     
     
  • 4.107, iZEN (ok), 14:11, 30/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    % pkg info node
    node-9.3.0
    Name           : node
    Version        : 9.3.0
    Installed on   : Thu Dec 28 18:39:42 2017 MSK
    Origin         : www/node
    Architecture   : FreeBSD:11:amd64
    Prefix         : /usr/local
    Categories     : www
    Licenses       : MIT
    Maintainer     : bhughes@FreeBSD.org
    WWW            : http://nodejs.org/
    Comment        : V8 JavaScript for client and server
    Options        :
    BUNDLED_SSL    : off
    DOCS           : off
    DTRACE         : off
    NLS            : on
    Shared Libs required:
    libcares.so.2
    libicui18n.so.60
    libicuuc.so.60
    libicudata.so.60
    libuv.so.1
    Annotations    :
    Flat size      : 17.6MiB
    Description    :
    Node.js is a JavaScript runtime built on Chrome's V8 JavaScript
    engine. Node.js uses an event-driven, non-blocking I/O model that
    makes it lightweight and efficient. Node.js' package ecosystem,
    npm, is the largest ecosystem of open source libraries in the world.

    WWW: http://nodejs.org/

    - 7 минут на сборку.

     
  • 3.106, iZEN (ok), 14:09, 30/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    % pkg info ruby
    ruby-2.5.0,1
    Name           : ruby
    Version        : 2.5.0,1
    Installed on   : Sat Dec 30 14:07:00 2017 MSK
    Origin         : lang/ruby25
    Architecture   : FreeBSD:11:amd64
    Prefix         : /usr/local
    Categories     : ipv6 ruby lang
    Licenses       : BSD2CLAUSE, RUBY
    Maintainer     : ruby@FreeBSD.org
    WWW            : https://www.ruby-lang.org/en/
    Comment        : Object-oriented interpreted scripting language
    Options        :
    CAPIDOCS       : off
    DEBUG          : off
    DOCS           : off
    EXAMPLES       : off
    GMP            : off
    LIBEDIT        : on
    RDOC           : on
    READLINE       : off
    Shared Libs required:
    libyaml-0.so.2
    libedit.so.0
    libffi.so.6
    libunwind.so.8
    Shared Libs provided:
    libruby25.so.25
    Annotations    :
    cpe            : cpe:2.3:a:ruby-lang:ruby:2.5.0:p0::::freebsd11:x64
    Flat size      : 26.4MiB
    Description    :
    Ruby is the interpreted scripting language for quick and
    easy object-oriented programming.  It has many features to
    process text files and to do system management tasks (as in
    Perl).  It is simple, straight-forward, and extensible.

    Features of Ruby are shown below.

      + Simple Syntax
      + *Normal* Object-Oriented features(ex. class, method calls)
      + *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
      + Operator Overloading
      + Exception Handling
      + Iterators and Closures
      + Garbage Collection
      + Dynamic Loading of Object files(on some architecture)
      + Highly Portable(works on many UNIX machines, and on DOS,
        Windows, Mac, BeOS etc.)

    WWW: https://www.ruby-lang.org/en/

    - 6 минут на сборку.

     
  • 2.50, AleksK (ok), 13:51, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это шестиядерный калькулятор МК-61? На ноуте с обычным мобильным i5 через rvm ruby собирается в течении 5-7 минут.
     

  • 1.70, Аноним (-), 18:16, 26/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Изменён на обратный порядок вывод трассировки (backtrace) и сообщения об ошибке (вначале идут вызовы, начиная со старых и заканчивая свежими, а в конце выводится сообщение об ошибке);

    Модно, стильно, молодёжно!

     
     
  • 2.79, нах (?), 22:11, 26/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Модно, стильно, молодёжно!

    да нет, разумно- когда стек уехал за пределы окна (а может и буфера), все еще видно ошибку, и где именно она вылезла без лишних движений мышью. А обратно на самый верх чаще всего и не понадобится лезть.

     

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



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

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