Представлен (https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-rele... релиз Ruby 2.4 (http://www.ruby-lang.org), динамического объектно-ориентированного языка программирования, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3. Ruby 2.4 является четвёртым значительным выпуском, подготовленным в рамках нового планового процесса разработки, подразумевающего отведение года на подготовку функциональных улучшений и формирование каждые 2-3 месяца корректирующих выпусков.Основные улучшения (https://github.com/ruby/ruby/blob/v2_4_0/NEWS):
- Переработана (https://bugs.ruby-lang.org/issues/12142) реализация хэш-таблиц (st_table), внесены улучшения связанные с переходом на использование открытой адресации (https://en.wikipedia.org/wiki/Open_addressing) для борьбы с коллизиями и применением упорядоченных массивов вместо списков с двойным связыванием (https://en.wikipedia.org/wiki/Doubly_linked_list). В среднем новая реализация обеспечивает 50% ускорения работы с хэшами;
- Добавлена возможность binding.irb для запуска REPL-сеансов по аналогии с binding.pry;
- Типы Fixnum и Bignum преобразованы в универсальный тип Integer. Все Си-расширения, из которых выполняется обращение к классам Fixnum и Bignum, должны быть переработаны;
- В строковых операциях String/Symbol#upcase/downcase/swapcase/capitalize реализована поддержка маппинга строчных/прописных символов для Unicode (ранее подобный маппинг был доступен только для ASCII-символов);
- Внесена серия оптимизаций производительности. В частности, ускорена работа "Array#max" и "Array#min", реализации "[x, y].max" и "[x, y].min" избавлены от создания временных массивов для некоторых ситуаций, добавлена операция "Regexp#match?" позволяющая обработать регулярное выражение без создания объекта с обратными ссылками, ускорены операции доступа к экземплярам переменных;- Добавлены отладочные вызовы "Thread#report_on_exception" и "Thread.report_on_exception" позволяющие отследить исключения при завершении потоков или выполнении операций сборки мусора. Расширены механизмы обнаружения взаимных блокировок в потоках, при выявлении которых обеспечен вывод обратных трассировок и списка зависимых потоков;
- Добавлена поддержка OpenSSL 1.1.0. Прекращена поддержка OpenSSL 0.9.7 и более ранних выпусков;- Из stdlib удалены компоненты ext/tk и XMLRPC.
URL: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-rele.../
Новость: http://www.opennet.me/opennews/art.shtml?num=45763
зря tk убрали
По ходу, на то были основания. Когда-то с появлением Tk 8.6 его поддержка в Ruby на x86_64 превратилась в тыкву. На x86 всё продолжало работать, а на x86_64 всё сыпалось. При этом с Tk 8.5 всё продолжало работать и на x86_64. Потом оно, конечно, было исправлено, но куча дистрибутивов со свежаком получили неработоспособную связку Ruby + Tk. Вот, видимо, чтобы не расстраивать больше подобным людей официальную поддержку и отменили.
Где-то в баг-трекере вроде была инфа, что удалили по причине облегчения ядра Ruby или что-то около того.
Нашел пруф - https://bugs.ruby-lang.org/issues/8539
Понятно. Там в конце мелким текстом ещё ссылка на github'овскую страницу gem'а этого tk. Теперь оно просто отдельно. Маинтейнеры могут паковать в пакеты, а без пакетов можно ставить командой "gem install tk".
увы не было их, этих "оснований".
а вот батхерт и проблемы у использующих оное - были явственно.
Няшный язык.Сам я пишу на С, но на руби много лаб и скриптов пописал, ээээх.
Согласен - язык для анимешников.
Для нормальных людей не пригоден.
какой нормальный? чем нормальный лучше ruby?
В нормальных нету
>Опять поломали совместимость.например
я конечно не в курсе, может заблуждаюсь, но исходя из анонса в предыдущих версиях uppercase для нелатиницы неработал :)
Пробывал я и питон, но не прижился -- гадина же )На руби просто приятно писать, после того как вникнешь в него. У него очень приятный синтаксис и большое количество библиотек под разные случаи жизни, ну, и гемфайлы рулят.
Попробуй LISP, вот где приятный синтаксис )
Попробуй LISP, вот где ( приятный синтаксис )
fixer не благодари
> Попробуй LISP, вот где ( приятный синтаксис )
> fixer не благодариСинтаксис как раз приятный
(Синтаксис
(как раз приятный))
>> Попробуй LISP, вот где ( приятный синтаксис )
>> fixer не благодари
> Синтаксис как раз приятныйЯ правильно понимаю что лисперы шутки про скобочки не воспринимают? Или вы не настоящие лисперы?
>>> Попробуй LISP, вот где ( приятный синтаксис )
>>> fixer не благодари
>> Синтаксис как раз приятный
> Я правильно понимаю что лисперы шутки про скобочки не воспринимают? Или вы
> не настоящие лисперы?(. (в (λ (просто типа) (совсем (мало (скобочек))) твоих шуточках)))
Даже если в строку писать - и то читаемо. Вопрос восприятия.Но синтаксического ???на (прим. переводчика - "сахара") в LISP в разы меньше чем в этих ваших Perl, PHP и Ruby...
хорошие сапоги, надо брать
Для нормальных есть LISP.
Что слаще(синтаксически) руби или лисп?
LISP
> Что слаще(синтаксически) руби или лисп?Python же! Вон, смотри, сколько сахара на sprintf() насыпали.
>> Что слаще(синтаксически) руби или лисп?
> Python же! Вон, смотри, сколько сахара на sprintf() насыпали.От сладенького попа слипнется, сударь. Вам код писать или на горшке сидеть?
У богатых не слипается.
пистонисты минусуют
Опять поломали совместимость.
Они верны своим традициям.
используй java
> используй javaСлишком многословно. Как необходимость сделать три раза ку, два пируэта, и одно сальто, чтоб попросить чашку воды.
> Все Си-расширения, из которых выполняется обращение к классам Fixnum и Bignum, должны быть переработаны;Вот такое свинство я не понимаю.
Нельзя что ли сделать обёртки, позволяющие использовать старые вызовы?Точнее даже так: для нового делаешь новые вызовы, а все старые вызовы оставляешь работоспособными. Нахрена ломать API, на котором написаны тысячи прикладных библиотек?!
Неужели разрабы ЯП думают, что писатели этих либ ментуться всё переписывать и переконпилировать в рубиджемах?! Ясно же что не будут, многие уже женились/спились/умерли и так далее - в результате (50-70)% либ в новом руби станут недоступны для прикладников. Это удар по экосистеме Ruby, и я уверен, что такие удары наносятся умышленно сраными агентами АНБ, внедрёнными как "разработчики языка".
>агентами АНБмстят за перл харбор, не иначе ))
ООП гойловного мозга. Обречены постоянно объединять и делить объекты на классы и методы. Добавят, поменяют, удалят, и так по кругу.
А как надо?
в меру.
> в меру.Используйте Haskell
>> в меру.
> Используйте HaskellНепрактично. Выбрал Perl.
Я тут тему провентилировал, на гитхабе полазил.
Короче, Matz (автор Ruby) не состоит в разработчиках Ruby.Вместо этого он с 2012 года пилит новый рубин (MRuby), совместимый с Ruby1.9 и без юношеских свистоперделок. Такие дела:
https://github.com/mruby/mrubyЯ его скачал, сканпелировал, helloword.rb запустил, работает.
Посему буду продолжать юзать Ruby1.9.3, а потом надо переходить на MRuby.
А эти сопляки пусть дальше ляпают свою пускалку для рельсов.
сразу видно где великодушный пожизненный диктатор, а где нет.
Сразу видно где рабочий проект в серьёзной фирме, а где наколеночное поде-лие (в стадии вечной недоделки) непризнаного гения.
Разработка ruby, mruby ведется не через гитхаб. На гитхабе просто зеркала.
У ruby есть core team которая и велет разработку. другие люди занимаются rubygems и stdlib.
mruby - это не новый руби, это embeded версия интерпретатора конкурент lua.
у mri и mruby совсем разное предназначение.
> Разработка ruby, mruby ведется не через гитхаб. На гитхабе просто зеркала.Что касается MRI -- верно. Но разработка mruby ведется именно через гитхаб.
> У ruby есть core team которая и велет разработку. другие люди занимаются rubygems и stdlib.
Core team занимается в том числе и стандартной библиотекой, не только core language.
все верно поправил
> Короче, Matz (автор Ruby) не состоит в разработчиках Ruby.Нет. За ним по-прежнему последнее слово касательно того, что будет добавлено или удалено. Например, вот:
https://bugs.ruby-lang.org/issues/12958#note-18> Вместо этого он с 2012 года пилит новый рубин (MRuby), совместимый с Ruby1.9 и без юношеских свистоперделок.
> Посему буду продолжать юзать Ruby1.9.3, а потом надо переходить на MRuby.Нет. mruby -- это не замена MRI. И он не совместим с Ruby1.9(маловероятно, что получится запустить ваш код, не внося в него никаких изменений).
> Посему буду продолжать юзать Ruby1.9.3
Это глупо. Поддержка давно завершилась:
https://www.ruby-lang.org/en/news/2015/02/23/support-for-rub...> А эти сопляки пусть дальше ляпают свою пускалку для рельсов.
Интересно, что вы такое наляпали, что для него нужен именно 1.9.3.
>Нельзя что ли сделать обёртки, позволяющие использовать старые вызовы?больше костылей! рано или поздно настанет момент когда выкидывать костыли. лучше сразу чем никогда.
>>Нельзя что ли сделать обёртки, позволяющие использовать старые вызовы?
> больше костылей! рано или поздно настанет момент когда выкидывать костыли. лучше сразу
> чем никогда.Молодой зелёный, готовый работать забесплатно...
Старый вонючий, который уже работает кое как
Вот когда станешь старым и вонючим, возможно поймёшь, что программы не для самоутверждения пишутся, а для решения задач реального мира.Это молодые зелёные летают аки пчёлы с проекта на проект. Ну и что, что цветок скоро завянет - порхатый пыльцу уже собрал, а дальнейшая судьба цветка порхатого не волнует.
а типа старый вонючий так взволнован судьбой проекта, что делает его до конца жизни забесплатно? или ещё доплачивает?всё проще: старый вонючий менее мобилен и более опытен, чтобы сократить кол-во порханий
из-за таких как вы и приходится держать старый браузер для того чтобы работать с налоговой.
> из-за таких как вы и приходится держать старый браузер для того чтобы
> работать с налоговой.а из-за таких как вы приходится новый браузер иногда расчехлять, чтобы все жаба-скрипты на гитхабе отрабатывали. уж я не знаю, что так с жабой можно накрутить..
> из-за таких как вы и приходится держать старый браузер для того чтобы
> работать с налоговой.Из-за таких как вы приходится новый браузер ставить постоянно, хотя не понятно, чего там в старом нету такого, что появилось в новом? Новые скруглённые кнопки? Поддержка аппаратного ускорения во флеш-роликах? Вы правда думаете, что из-за этого пистец как нужно браузер обновить?
>Это удар по экосистеме Rubyэто ужо давно никому не интересно - последнего руби программиста я видел очень и очень давно.
Да, среди твоих коллег по уборке дворовых площадок руби-программистов встретишь едва ли
>>Это удар по экосистеме Ruby
> это ужо давно никому не интересно - последнего руби программиста я видел
> очень и очень давно.Меньше бы теребонькал пиписюньку, может зрение и сохранил бы.
> В строковых операциях String/Symbol#upcase/downcase/swapcase/capitalize реализована поддержка маппинга строчных/прописных символов для Unicode (ранее подобный маппинг был доступен только для ASCII-символов);Жуть. Шёл к концу 2016 год...
да, приходилось использовать unicode-utils
> да, приходилось использовать unicode-utilsи ладно бы хоть в стандартной поставке был :(