URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 113139
[ Назад ]

Исходное сообщение
"Выпуск языка программирования Ruby 2.5.0"

Отправлено opennews , 25-Дек-17 21:59 
После года разработки состоялся (https://www.ruby-lang.org/en/news/2017/12/25/ruby-2-5-0-rele... релиз Ruby 2.5.0 (http://www.ruby-lang.org), динамического объектно-ориентированного языка программирования, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.  Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3.  Ruby 2.5 является пятым значительным выпуском, подготовленным в рамках  планового процесса разработки, подразумевающего отведение года на подготовку функциональных улучшений и формирование каждые 2-3 месяца корректирующих выпусков.

Основные улучшения (https://github.com/ruby/ruby/blob/v2_5_0/NEWS):


-  В блоках do/end теперь допустимо (https://bugs.ruby-lang.org/issues/12906) напрямую использовать секции   rescue, else и ensure;

-  Определён метод yield_self (https://bugs.ruby-lang.org/issues/6721) для выполнение операции yield с блоком в его контексте. В отличие от tap, метод возвращает результат выполнения блока;

-  Поддержка (https://bugs.ruby-lang.org/issues/13901) измерения покрытия (https://ru.wikipedia.org/wiki/%D0%9F%D0%... (coverage) тестовым кодом веток и методов. Покрытие ветки показывает то, какие ветки были выполнены в процессе выполнения тестов, а какие нет. Покрытие метода показывает какие методы были вызваны, а какие нет;
-  Добавлены новые методы  Hash#slice (https://bugs.ruby-lang.org/issues/8499) и Hash#transform_keys (https://bugs.ruby-lang.org/issues/13583);
-  Конструктор Struct.new теперь может создавать (https://bugs.ruby-lang.org/issues/11925) классы, принимающие именованные аргументы (keyword arguments);

-  Перечисляемые предикаты последовательностей (#any?, #all?, #none? и #one?) теперь могут принимать (https://bugs.ruby-lang.org/issues/11286) аргументы в виде шаблона;

-  Прекращено (https://bugs.ruby-lang.org/issues/11547) использование констант верхнего уровня (top-level) с тем же именем, если поиск класса в указанной области видимости не увенчался успехом;

-  Включена автоматическая загрузка библиотеки pp.rb без необходимости указания в коде 'require "pp"';

-  Изменён (https://bugs.ruby-lang.org/issues/8661) на обратный порядок вывода трассировки (backtrace) и сообщения об ошибке(вначале идут вызовы, начиная со старых и заканчивая свежими, а в конце выводится сообщение об ошибке);


-  На 5-10% увеличена (https://bugs.ruby-lang.org/issues/14104) производительность за счёт удаления инструкций "trace" из байткода. При необходимости применения TracePoint теперь осуществляется динамическое изменение последовательностей инструкций (ISeqs). В итоге в обычных условиях, когда не используется TracePoint, устранены лишние накладные расходы, за счёт их существенного повышения на этапе включения трассировки;

-  Примерно в три раза ускорена (https://bugs.ruby-lang.org/issues/14045) передача блоков через параметры блока (например def foo(&b); bar(&b); end);

-  IO#write теперь может принимать (https://bugs.ruby-lang.org/issues/9323) несколько аргументов, компонуя выходные данные из нескольких буферов;

-  Переписана реализация мьютексов. Размер 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;
-  Библиотеки 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, упрощающая отладку многопоточных программ.

URL: https://www.ruby-lang.org/en/news/2017/12/25/ruby-2-5-0-rele.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=47806


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Ruby 2.5.0"
Отправлено zo0M , 25-Дек-17 22:55 
Почему Ruby получил такое слабое распространение(имею ввиду что дальше рельс не ушел), если он такой классный?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 25-Дек-17 23:15 
Ну вообще-то большинство macos с менеджером пакетов brew на руби, а в suse/opensuse linux большинство сприптов на нём... Для начала....

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 10:55 
Ах вот оно почему на OpenSuse скрипты жрут столько ресурсов так тупят!!! При обновлениях системы 4 ядра глотаю по 100% каждое, и крутится все это по пол часа.
Хороший язык!!! Мне нравится!!!

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Интересующийся , 26-Дек-17 11:56 
Чего, чего Вы там глотаете?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Anon123 , 26-Дек-17 15:06 
Он прав в плане прожорливости. Только лично я не знаю что именно жрет столько.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 25-Дек-17 23:19 
Не было мегакорпораций за спиной.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 10:27 
У Питона тоже за спиной мегакрапораций не видится.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Fidel Castro , 26-Дек-17 10:41 
был гугл

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 21:41 
и дропбокс

"Выпуск языка программирования Ruby 2.5.0"
Отправлено имя , 27-Дек-17 13:19 
yahoo использовали активно

"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 25-Дек-17 23:28 
Потому что Matz всем постоянно расказывал, что производительность это не главное, и вообще с ней все ОК, а потом оказалось, что совсем не ОК. И теперь надо делать Руби 3, который на самом деле ничего уже не решит.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 25-Дек-17 23:41 
> Потому что Matz всем постоянно расказывал, что производительность это не главное, и
> вообще с ней все ОК, а потом оказалось, что совсем не
> ОК. И теперь надо делать Руби 3, который на самом деле
> ничего уже не решит.

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 26-Дек-17 00:04 
Можно писать для 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 и подобной чепухой.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено waylandbeliver , 26-Дек-17 09:58 
Думаю эти три команды в какой-то момент обсудят общие наработки +  IBM либо выкинет, либо наконец допилит свою гитлер-машину для ускорения руби и других скриптовых языков.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 26-Дек-17 14:20 
Там нечего обсуждать, все уже давно обсудили, нужно сделать выбор в пользу одной из этих веток и пилить дальше. Даже если IBM что либо выкинет прямо сегодня, в Руби оно окажется слишком поздно :(

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 21:51 
Если вы не в курсе внутренней кухни то не нужно ляля, а с хотите и почитайте багтрекер. Vladimir там отписывается. И там же мнение Матза можете почитать и как они впиливали yarv в руби тоже есть. mruby вы похоже опять же не в курсе что куда и почему. Вы еще jruby забыли обосрать, а в прогрессивные языки котлин добавить и свифт.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 27-Дек-17 01:57 
> Если вы не в курсе внутренней кухни то не нужно ляля, а
> с хотите и почитайте багтрекер. Vladimir там отписывается. И там же
> мнение Матза можете почитать и как они впиливали yarv в руби
> тоже есть. mruby вы похоже опять же не в курсе что
> куда и почему. Вы еще jruby забыли обосрать, а в прогрессивные
> языки котлин добавить и свифт.

Очень даже я в курсе. И выводы сделал исходя и чтения багтрека и просмотра выступлений на профильных конфах. MRuby здесь потому, что Матз имеет слишком много власти (грубо говоря, в обход него ничего в MRI не проходит) и вместо того, что бы плодотворно решать проблемы с производительностью MRI, он разьезжал по конференциям и рассказывал, что производительность это не проблема (99% — это бд/http и прочую чушь) и пилил этот вот MRuby. Более того, насколько я знаю под MRuby он еще и освоил грант. Конечно, зачем напрягатся и принимать сложные решения если тебе и так Heroku платили деньги типа за участие в разработке MRI, тебя зовут на конфы не за твой счет и дают гранты осваивать. Какой дурак будет тратиться свое время на работу, если тебе этого делать не обязательно и никто не доплатит (Heroku, например).

Поэтому, да, у фанбоев пригорает, но нужно протрезветь и посмотреть правде в глаза. Я прекрасно помню тот момент, когда добавили yarv, это по сути была последняя важная крупная движуха. Те же люди предлагали дальше пилить в этом направлении, но Матз все блочил и наслаждался достойной жизнью. А последний большой холивар на багтрекере это... обсуждение code of conduct. Очень прямо насущая была проблема.

ЗЫ, свифт очень даже ничего. Вот нормально можно будет его собрать не только под дебианом и будет очень неплохо.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 27-Дек-17 14:02 
>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) в японии. Думаю это не единственное место где его используют.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 27-Дек-17 16:13 
>[оверквотинг удален]
>>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) в японии. Думаю это не единственное место где
> его используют.

Сразу всем стало легче от того, что МРуби используют на роутерах в Японии. Более того, я считаю, что может даже кто-то использует ngx_mruby. Но вот незадача, в областях где предлагается использовать MRuby давно и безраздельно главенствует Lua, и чувствует себя прекрасно. И не испытывает каких-то прямо серьезных проблем с производительностью или сложностью с интеграцией. И как язык, Луа очень даже терпимый, а по сравнению с JS, прям прекрасный.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 27-Дек-17 17:06 
>Сразу всем стало легче от того, что МРуби используют на роутерах в Японии. Более того, я считаю, что может даже кто-то использует ngx_mruby. Но вот незадача, в областях где предлагается использовать MRuby давно и безраздельно главенствует Lua, и чувствует себя прекрасно. И не испытывает каких-то прямо серьезных проблем с производительностью или сложностью с интеграцией. И как язык, Луа очень даже терпимый, а по сравнению с JS, прям прекрасный.

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 27-Дек-17 19:39 
Я не знаю ни одного проекта где Луа заменяет Бэш. Вот например:

* nmap — скрипты для создания сценариев сканирования
* aerospike — написание сложных запросов для БД
* LuCI — веб-интерфес для OpenWRT
* Cryengine — встроенный скриптовый язык
* и т.д.

Где тут мог бы быть бэш?.. Трудно представить.

Bash это вполне нормальный язык, многие просто не придерживаются нормальных гайдлайнов для написания скриптов на нем.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 29-Дек-17 23:19 
если бы вы были в курсе то не несли бы всякую фигню. https://bugs.ruby-lang.org/issues/14235

"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 30-Дек-17 03:24 
Ну-ну, посмотрите на даты в этом тикете и на то, что в конечно счете собираются смерджить в mri.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 22:11 
> Можно писать для python, node, java, ocaml, go, и для много чего
> другого и везде будет гораздо быстрее и будет потреблять меньше памяти.
> И ничего с этим уже не сделать.

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

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



"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 27-Дек-17 01:44 
Я очень даже представляю, что Python + Django это может быть до 200МБ памяти. Rails? Сомневаюсь, что-то минимальное, вроде блога, это минимум 300МБ, нормальный проект с админкой, легко до 800.

Node «чуть лучше»? Не просто чуть луже, в 10 раз быстрее и по памяти еще легче, чем Python.

В Go нормальный синтаксис, но скорость разработки конечно же ниже.

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

Почему нет Elixir? Потому, что это разхайпованый Jose Valim'ом язык, который вначале должен был быть как руби но на BeamVM, потом как clojure + F#, а в конечно счете получилось что-то невнятное. Язык перенял медлительность в принятии новых запрошеваемых фич. Причем, не просто каких-то фентифлюшок и обвязок для OTP, а, например, библиотеки для работы с датой. В конечном счете имеем теперь библиотеку для работы с датой-временим, но и кучу ранних либ которые испозьзуют для хранения дат свои форматы (тут надо бы съязвить, что дефолтный логгер не поддерживает дефолтную библиотеку и никто с этим ничего делать не будет до версии 2)


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 27-Дек-17 11:11 
>> Я очень даже представляю, что Python + Django это может быть до 200МБ памяти. Rails? Сомневаюсь, что-то минимальное, вроде блога, это минимум 300МБ, нормальный проект с админкой, легко до 800.

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 27-Дек-17 14:05 
Middleman - совсем из другой оперы. И имхо его нужно усыпить. Фичастая конечно штука но дебажить её просто ад какой-то. А про подробную документацию для написания расширений я даже не говорю.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено непох , 27-Дек-17 16:05 
Hanami тоже отжирает немало, Django фичастее и экономнее. В принципе это логично, количество абстракций (призентеры и использование патерна "репозиторий") возрасло по сравнению с рельсами.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 10:31 
Ну а что, с ВебАсмом можно и на C++.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено M i M , 26-Дек-17 16:39 
Причём тут WebAssembly, когда речь про back end?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Пользователь Debian , 26-Дек-17 14:57 
Пишите на Go.

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено kuraga , 27-Дек-17 14:36 
> Пишите на Go.
> У меня тут на работе код на Go, а функциональные тесты —
> на руби (так получилось).
> Когда они поставлены рядом, разница верна невооружённым взглядом: руби совершенно не хочется
> трогать никому на проекте.

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 25-Дек-17 23:32 
SQL тоже как-то не ушел дальше БД :)
Серьезно, "rails и тусовка вокруг него" - уже достаточно значимое явление, не каждому ЯП такое перепало.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено SubGun , 26-Дек-17 00:16 
> Серьезно, "rails и тусовка вокруг него" - уже достаточно значимое явление, не
> каждому ЯП такое перепало.

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Anonim , 26-Дек-17 08:32 
Да, у питона и егошной джангой конечно этого нет.... При переезде на новую версию. Две версии языка до сих пор тянут.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено ЫгиПгт , 26-Дек-17 12:21 
Так никто и не говорит, что этого нет в других языках. Но блин, делать еще один зашкварный язык - это такое себе. Получается адский зоопарк, когда один проект на 1.8, другой - на 2.0, третий - на 2.3. А рефакторинг дороже написания с нуля под новую версию.
Вот выйдет 3.0, думаете все кинутся на него переходить? Да просто в зоопарке появится еще один зверек. И сопровождать это с годами, поддерживая в рабочем состоянии, все сложнее.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 20:18 
1.8 уже нигде не осталось. Слишком старый. Остальные эволюционно совместимы


"Выпуск языка программирования Ruby 2.5.0"
Отправлено нах , 25-Дек-17 23:35 
для однострочников и повседневной админской деятельности - слишком высок порог вхождения.

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено хехе , 26-Дек-17 03:34 
> У пехепе почти то же самое

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 04:25 
> не наблюдается "дайте больше ядер и памяти и дисков"

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Агроном , 26-Дек-17 08:09 
То есть сайт плохо спроектировали и реализовали, а виноват пехепе?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Очередной аноним , 26-Дек-17 09:09 
Точнее - виноват админ

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 15:18 
Виноват разработчик сайта. Либо тем, что выбрал не тот язык, либо тем, что криво написал на языке, который может нормально исполняться. Я тогда убрал с того сервера отгрузку статики, потвикал настройки пхп-фпм и мускула и оно кое-как стало работать. Но сайт переписывать - уж извините.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено amonymous , 26-Дек-17 10:37 
Просто обезьянки-любители ZF, Yii и прочих ларавелов забыли, что кроме их личного удобства есть ещё куча параметров, которые требуют нормального проектирования, а не шаблончиков. И сделали как обычно. Пых всем хорош, кроме попытки сделать из него MVC, которое на минутку бородато и с моделью работы per request вяжется плохо.



"Выпуск языка программирования Ruby 2.5.0"
Отправлено хехе , 26-Дек-17 11:29 
Я вот который день ссаными тряпками гоняю всех: пехепешников, джанговодов и рельсоводов.
А всё почему? Да потому, что таблицы из своих убер-фреймворков создать мы могём, а индексы на полях, отличных от PK, не могём. Иногда потому, что для максимального значения 200 байт выбирается longtext, ну а чо, с запасом же, а оно внезапно не даёт сделать индекс просто так, а задать длину уже рокет сайнс :)
И чтой-то у нас тормозит выборка по уникальному значению, коннекты заканчиваются и ЦПУ на 90% загружен, подать сюда админа, надо системные настройки и ведро тюнить.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено ttt , 26-Дек-17 15:01 
уже много лет рельса поддерживает ВСЕ индексы. читайте доки, предварительно помыв руки от тряпок грязных

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 15:20 
> уже много лет рельса поддерживает ВСЕ индексы. читайте доки, предварительно помыв руки
> от тряпок грязных

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено хехе , 26-Дек-17 16:05 
Жму руку, хоть кто-то не просто читатель, но и пониматель :)

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 22:52 
индексы - это разве не пипец? Их же обновлять очень дорого?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено amonymous , 27-Дек-17 10:35 
Индексы - это трейдофф. Теряем производительность при записи, избавляемся от фуллсканов при чтении. Если у вас write mostly - да, не всегда оправдано. Но таких задач единицы.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено пох , 26-Дек-17 16:19 
> Пых всем хорош, кроме попытки сделать из него MVC

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено amonymous , 27-Дек-17 10:44 
Закатывать солнце вручную - это опять же удел обезьянок. При нормальном дизайне получается набор либов (ооп или процедурных, где что удобнее), и несколько более жирные контроллеры. Что даёт возможность оптимизации под задачу, не упираясь в неповоротливую махину фреймворка. Плюс снижается code scattering, и соответственно упрощается дизайн и отладка собственно логики.

Возьмите почти любой модный молодёжный пых-фреймворк. Там же для банального хеллоуворлда надо тонну классов вгрузить и инициализировать. А с очевидностью call path внутри самого фв и вообще задница. Для ultra-rad а-ля "накорябал, сдал клиенту, дальше тот ииится сам" - годится, для долгоживущих приложений - нет.

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено KonstantinB , 26-Дек-17 17:58 
MVC - это три буквы, которые каждый понимает по своему.
Изначально MVC - это общий архитектурный паттерн, а не конкретный design pattern. И во всяких Yii и Laravel реализован далеко не лучший вариант - прежде всего из-за анемичных моделей.
Если смотреть на этот термин в изначальном смысле - все вяжется: там идет речь о отделении бизнес-логики от логики представления и ни о чем больше. Такое разделение абсолютно естественно вряд ли существует модель работы, с которой оно несовместимо.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено amonymous , 27-Дек-17 10:48 
В случае вебни все очень сложно с "V". Часть дата репрезентейшн на клиенте, а сам вид вырождается в темплейты.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Qasta , 26-Дек-17 12:41 
> В энтер-прайсе не нужна вторая жаба, у них одна уже есть.

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 22:53 
А в Github Inc. то и не знали.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 27-Дек-17 01:56 
Высокий порог вхождения? Да ладно!

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 00:40 
> Почему Ruby получил такое слабое распространение(имею ввиду что дальше рельс не ушел), если он такой классный?

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 11:01 
Синтаксис Tcl ужасен, глядя на то, как выглядит Tk на современном десктопе, плакать хочется кровами слезами.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 13:53 
Если б взлетел, то и внешний вид Tk поддерживали бы на современном уровне. Но некому.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Пользователь Debian , 26-Дек-17 14:53 
Занятно, что в Windows и Mac OS X он выглядит превосходно.

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено пох , 26-Дек-17 16:24 
> Синтаксис Tcl ужасен

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Ю.Т. , 26-Дек-17 08:03 
Потому что хороший парень - не профессия.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 09:01 
потомучто набор антипаттернов

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Hellraiser , 26-Дек-17 12:03 
> имею ввиду что дальше рельс не ушел

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено andydem , 26-Дек-17 15:06 
Интересная статья на эту тему: http://www.realcoding.net/articles/pochemu-ruby-i-python-ne-...

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 21:58 
2008 год вы серьезно? уже и скалу зарыли давно а Java рассматривают как прокладку к JVM

"Выпуск языка программирования Ruby 2.5.0"
Отправлено нах , 26-Дек-17 22:07 
> 2008 год вы серьезно?

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено SkyNet , 05-Мрт-18 11:49 
>> 2008 год вы серьезно?
> ну аргументы-то там разумные (разумно ли оценивать популярность по запросам к непонятно
> даже, чему - другой вопрос)
> и действительно, ничего из перечисленного не взлетело, ну разьве что пихона стало
> побольше за счет остальных. Зато у нас есть rust, go, и
> npm leftpad...простите, node.js.

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

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Ordu , 27-Дек-17 02:36 
tldr; Потому что есть python.

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

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

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

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 01:29 
А почему не Python или JavaScript? В чем тут преимущество?
Кроме недостатка Runtime библиотек и какой-то странноватой философии.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 08:42 
> почему не [...] JavaScript?

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 10:05 
таки у js и есть нормальный синтаксис, в отличие от этого второго перла

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 14:33 
> таки у js и есть нормальный синтаксис

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 21:33 
И получился бы не пойму толи Java толи С#?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 01:56 
Пропустили в новости, что Bundler теперь не надо отдельно устанавливать.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Арс , 26-Дек-17 03:34 
Надо, в последний момент вырезали его.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 03:47 
Точно! За 3 дня до релиза. Извиняюсь был не прав.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено iZEN , 26-Дек-17 11:24 
Не помню, для чего нужен Ruby. Вроде бы для сборки Node.js, а тот нужен для сборки Iridium-browser. Но в конечном итоге Ruby и Node.js используются только на этапе сборки, а ни в каком больше рантайме не используются - поэтому можно безболезненно удалить. Но на саму их сборку тратится час шестиядерного процессора!

"Выпуск языка программирования Ruby 2.5.0"
Отправлено amonymous , 26-Дек-17 13:10 
Любители rebuild (hello)world должны страдать.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено iZEN , 26-Дек-17 14:11 
Так сборка в фоне происходит. Страдают линуксоиды, у которых время реакции ядра резко замедляется. Бздишники затыков не замечают.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено amonymous , 26-Дек-17 14:55 
У меня этой сборки в фоне не происходит никогда. Что я делаю не так?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 18:25 
> У меня этой сборки в фоне не происходит никогда. Что я делаю не так?

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено anomymous , 26-Дек-17 20:20 
Да. Очень люблю блобики CentOS, они позволяют не греть воздух впустую, пересобирая велосипеды.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Sw00p aka Jerom , 26-Дек-17 13:43 
Какой ещё час на сборку ruby?

"Выпуск языка программирования Ruby 2.5.0"
Отправлено iZEN , 26-Дек-17 14:10 
Ruby+Node.js

"Выпуск языка программирования Ruby 2.5.0"
Отправлено iZEN , 30-Дек-17 14:11 
% 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 минут на сборку.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено iZEN , 30-Дек-17 14:09 
% 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 минут на сборку.


"Выпуск языка программирования Ruby 2.5.0"
Отправлено AleksK , 26-Дек-17 13:51 
Это шестиядерный калькулятор МК-61? На ноуте с обычным мобильным i5 через rvm ruby собирается в течении 5-7 минут.

"Выпуск языка программирования Ruby 2.5.0"
Отправлено Аноним , 26-Дек-17 18:16 
>Изменён на обратный порядок вывод трассировки (backtrace) и сообщения об ошибке (вначале идут вызовы, начиная со старых и заканчивая свежими, а в конце выводится сообщение об ошибке);

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


"Выпуск языка программирования Ruby 2.5.0"
Отправлено нах , 26-Дек-17 22:11 
> Модно, стильно, молодёжно!

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