Доступен (https://www.ruby-lang.org/en/news/2014/12/25/ruby-2-2-0-rele.../) релиз Ruby 2.2 (http://www.ruby-lang.org), динамического объектно-ориентированного языка программирования, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3. Ruby 2.2 является вторым значительным выпуском, подготовленным в рамках нового планового процесса разработки, подразумевающего отведение года на подготовку функциональных улучшений и формирование каждые 2-3 месяца корректирующих выпусков. В настоящее время уже началась работа над фреймворком Rails 5.0, в котором будут задействованы новые возможности Ruby 2.2.Основные улучшения (https://github.com/ruby/ruby/blob/v2_2_0/NEWS):
- Представлен инкрементальный сборщик мусора (https://bugs.ruby-lang.org/issues/10137), примечательный сокращением задержек во время значительных чисток мусора;
- В сборщик мусора включены изменения (https://bugs.ruby-lang.org/issues/9634), позволившие обеспечить чистку мусора для объектов типа Symbol при сохранении совместимости с расширениями на языке Си. Внесённое изменение привело к сокращению потребления памяти при использовании объектов типа Symbol;
- В сборочном сценарии configure.in добавлена (https://bugs.ruby-lang.org/issues/9113) опция "--with-jemalloc " для сборки с библиотекой jemalloc, что должно привести к увеличению производительности операций управления памятью. Использование jemalloc пока позиционируется как экспериментальная возможность;
- Экспериментальная поддержка использования системного вызова vfork(2) совместно с вызовами system() и spawn(), которая позволяет существенно сократить накладные расходы при выполнении внешних команд из процессов большого размера;
- В базовых библиотеках реализована поддержка спецификации Unicode 7.0 и добавлены новые методы Enumerable#slice_after (https://bugs.ruby-lang.org/issues/9071), Enumerable#slice_when (https://bugs.ruby-lang.org/issues/9826), Float#next_float, Float#prev_float (https://bugs.ruby-lang.org/issues/9834), File.birthtime, File#birthtime (https://bugs.ruby-lang.org/issues/9647) и String#unicode_normalize (https://bugs.ruby-lang.org/issues/10084);- Обновлены поставляемые в комплекте сторонние библиотеки и компоненты: Psych 2.0.8, Rake 10.4.2, RDoc 4.2.0, RubyGems 2.4.5, test-unit 3.0.8, minitest 5.4.3. Объявлена устаревшей библиотека mathn;
- Из API для разработки дополнений на языке Си удалены вызовы, ранее объявленные устаревшими.
URL: https://www.ruby-lang.org/en/news/2014/12/25/ruby-2-2-0-rele.../
Новость: http://www.opennet.me/opennews/art.shtml?num=41341
Good news, everyone!
> Good news, everyone!Дежурное продолжение про всех уволенных.
Рад, конечно, что после закрытия сериала порождённые им мемы всё ещё живы и здоровы...
Рад за них. Опять все будет поломатое, чувствую.
* GC
* incompatible changes:
* Rename GC.stat entries. [Feature #9924]
* IO
* incompatible changes:
* When flushing file IO with IO#flush, you cannot assume that the metadata
of the file is updated immediately. On some platforms (especially
Windows), it is delayed until the filesystem load is decreased.
Use IO#fsync if you want to guarantee updating metadata.* Math
* incompatible changes:
* Math.log now raises Math::DomainError instead of returning NaN if the
base is less than 0, and returns NaN instead of -infinity if both of
two arguments are 0.
* Math.atan2 now returns values like as expected by C99 if both two
arguments are infinity.* Proc
* incompatible changes:
* ArgumentError is no longer raised when lambda Proc is passed as a
block, and the number of yielded arguments does not match the formal
arguments of the lambda, if just an array is yielded and its length
matches.* Process
* Process execution methods such as Process.spawn opens the file in write
mode for redirect from [:out, :err].
Before Ruby 2.2, it was opened in read mode.для минорной версии маловато поломок.
>вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.И ни одной плохой, да?
Да
> И ни одной плохой, да?Плохие изобретены с нуля.
> Perl, Java, Python, Smalltalk, Eiffel, Ada и LispАдская смесь...
Вроде недавно вышла версия 4.2.
Стоит всё-таки в таких ситуациях писать, что вы про Rails, а не про Ruby…
А где-то есть руби без рельс? Они же неразрывны как две половинки одной попы.
Diakonos http://diakonos.pist0s.ca/
Довольно забавный проект. Стал бы серьёзным, если бы не:
- завязка на curses. Ну и понту это было на рубях писать, если в вебку не ввернуть.
- выделение текста ещё причудливее, чем в vi
- взрослая возможность похерить редактируемый файл (Нашёл 1 сценарий. Вероятно, реально больше).
Это Вы так своё невежество показываете?
То были Рельсы. А это новость — про Руби, на котором эти Рельсы бегают.
Это Руби бегает на Рельсах, а не наоборот: it's Ruby on Rails, not Rails on Ruby.
Node.js much better
>Node.js much betterНастолько хороша, что аж форкнулась
Она даже на S390 не запустится. А Ruby работает и работает
Правда, там на фиг не нужно ни то, ни другое...
учитывая, что одно - язык, а второе - набор обвязок для веба на языке javascript... чай с конфетами - ещё лучше!
Т.к. все ИТ-макаки свалили с переставшего быть модным руби на ноду (усиленная тем, что написанием бэкенда стало заниматься достаточно много ничего не смыслящих в этом фронтендеров), ситуация сложилась обратная: руби лучше ноды в плане качества библиотечного кода и квалификации среднего разработчика. И это еще не учитывая убл*дочности жаваскрипта, как языка.
Как разработчик на Node.JS, полностью с вами согласен
Как разработчик на ROR, абсолютно с вами не согласен.
>руби лучше ноды
>язык лучше либы
Имеет лишь смысл оценивать стеки технологий целиком: сами языки, основные реализации, стандартные и сторонник библиотеки, сообщества разработчиков.
Сравнение сферического руби с сферическим жаваскриптом не имеет никакого практического смысла, потому под "руби" и "нодой" имелись в виду соответствующие технологические стеки.
>вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и LispТакой великолепный язык, но почему-то без своих рельсов даром никому не нужен.
да почему же не нужен? А vagrant, а hombrew, а metasploit, а всякие jekkyl, octopress? Да, в контексте рельс разработок больше но это не мы такие, время такое, но тут опять же есть и sinatra и padrino - тоже замечательные веб-фреймворки, которые активно используются (просто вы не знаете об этом, сайты же не трубят на каком языке они написаны).
А также всё тестирование
* в консоли: Cucumber, Rspec;
* в браузере: Selenium/Capybara;
* в GUI: SikuliX.
...И опять же, всё это на Ruby
А также Chef для развертывания приложений
> А также Chef для развертывания приложенийДля развертывания, скорее, капистрана, а шеф - для конфигурирования серверов.
Слишком нестабильный. Руби колбасит до нерабочих скриптов даже в минорных версиях, и не каждый захочет на нём из за этого программировать. Однако язык точно не хуже тройки Perl/Python/Tcl. А из за лёгкого ООП искаропки, есть кто прощает ему этот недостаток, а из за скорости разработки - низкую скорость выполнения.
> Слишком нестабильный. Руби колбасит до нерабочих скриптов даже в минорных версияхExcusemewhat? Вы вообще пользовались им хоть раз?
Большинство скриптов писаных еще на 1.8.6 спокойно запускается в 2.2.0.
>> Слишком нестабильный. Руби колбасит до нерабочих скриптов даже в минорных версиях
> Excusemewhat?читай incompatible changes в 2.2 по сравнению с 2.1, 2.1 по сравнению с 2.0, 2.0 по сравнению с 1.9 и 1.9 по сравнению с 1.8.
> Вы вообще пользовались им хоть раз?
и писал немного, ничего серьёзного.
> Большинство скриптов писаных еще на 1.8.6 спокойно запускается в 2.2.0.
большинство, доооо.
Можно пример какого-то вот прям breaking incompatibility которое ломает скрипты? Из каких-то серьезных проблем могу вспомнить убранный интерфейс Enumerable из стрингов и переход на Object#object_id. Все остальные изменения ломали максимум 5% каких-то совсем специфических скриптов
> Можно пример какого-то вот прям breaking incompatibility которое ломает скрипты?ну по ссылкам же.
> Все остальные изменения ломали максимум 5% каких-то совсем специфических скриптов
в зависимости от же. Нет, чувак, если у тебя ничего не ломается - ради бога, я тебя не уговариваю. Просто обратил внимание на факт. А дальше, кто больше методов использует - у того больше ломается, кто меньше - меньше, или авось обойдёт.
Вот я и наступил на грабли.
В 2.2 гем netzke 0.9.0 выдавал ошибки при вызове модального окна с данными.
Пришлось откатиться на 2.1.3А вы говорите...