Выпущен (https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-5-1-rele.../) корректирующий релиз языка программирования Ruby 2.5.1 (https://www.ruby-lang.org/), в котором устранено шесть уязвимостей:- CVE-2017-17742 (https://www.ruby-lang.org/en/news/2018/03/28/http-response-s.../) - библиотека WEBrick подвержена подстановке фиктивного ответа через указание символов перевода строки в HTTP-заголовке;
- CVE-2018-6914 (https://www.ruby-lang.org/en/news/2018/03/28/unintentional-f.../) - инициирование создания файлов и каталогов через указание символов "../" в имени префикса временного файла при использовании библиотек tempfile и tmpdir;
- CVE-2018-8777 (https://www.ruby-lang.org/en/news/2018/03/28/large-request-d.../) - вызов отказа в обслуживании (израсходование доступной памяти) при обработке слишком большого HTTP-заголовка в WEBrick;
- CVE-2018-8778 (https://www.ruby-lang.org/en/news/2018/03/28/buffer-under-re.../) - выход за нижнюю границу буфера при обработке специально оформленных данных в String#unpack;- CVE-2018-8779 (https://www.ruby-lang.org/en/news/2018/03/28/poisoned-nul-by.../) - создание сокета в другом каталоге через указаие нулевого байта (\0) в пути, передаваемом в UNIXServer.open и UNIXSocket.open;
- CVE-2018-8780 (https://www.ruby-lang.org/en/news/2018/03/28/poisoned-nul-by.../) - обработка иных каталогов в Dir.open, Dir.new, Dir.entries и Dir.empty при наличии нулевого символа в пути.
URL: https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-5-1-rele.../
Новость: https://www.opennet.me/opennews/art.shtml?num=48350
ошибки уровня "дедсад познаёт POSIX API и базовые концепции HTTP"
какой детсад? ruby вышел из моды еще когда я хотя бы в трудовой писался "программистом"Дедушки из дома престарелых, чтоб поменьше собачились, озадаченные "основам компьютерной грамотности". Ну, вот, опять наступили себе на бороду...
https://ru.wikipedia.org/wiki/%D0%A8%D0%...
не путайте Руби с питоном и бейсиком
Новость отличная сама по себе, но наверняка будет гудение в комментариях, мол, опять про Ruby.То, что Вы не используете этот язык или Вам он не нравится -- не делает его бесполезным или бестолковым.
У Ruby есть свои задачи, которые он хорошо решает, и не надо, пожалуйста, сюда приплетить Rails -- это как судить про Python только по Django.
А может количество Django и Rails-ов это всетаки показатель?
На php вон CMS как собак не резаных.. а у руби чего? рельсы?
Нет, не может. Это заблуждение, так как Rails является отдельным продуктом, его качество не означает качество языка: написать хорошо или плохо можно на *любом* языке.У Ruby есть другие сильные продукты: Puppet, Foreman, Vagrant. Он прекрасен, как язык язык оркестрации и работы с текстовыми файлами, которым был Perl.
Могу дать простой совет: никогда не начинать учить/знакомиться с Ruby через Rails, тогда парадигма восприятия будет совсем иной.
Перечислите, пожалуйста, задачи, которые хорошо решает Ruby
Например:1. Работа с текстовыми файлами. Да, в 2018 это до сих пор нужно, раньше это делали через Perl, сейчас это делают либо на Python, либо на Ruby. Первый - тонны конвеншенов и бойлерплейта, несоответствий ООП-принципу, всего этого нет во втором. Именно удобнее, потому что есть такие вещи как полноценный юникод, pack/unpack, итераторы и один из самых мощных regexp-движков onigma, в этом плане разве что Java круче.
2. Оркестрирование - Puppet, Chef, Vagrant, Foreman все они написаны на Ruby за счёт полноценного, стройного ООП и удобства работы с классами, строгим scope, отсутствием траты значительных ресурсов при обновлении версии языка (даже портирование с 1.9 на 2.4 не вызывает значительных проблем).
3. Системные скрипты и обёртки, за счёт наличия удобных библиотек по IO, HTTP (HTTParty), GPGME, работы с процессами/тредами.
4. Прототипирование - быстрый наброс прототипа, который, например, потом будет написан на Go для большей портативности.
5. Мокапы и временные заглушки - опять же, удобные вещи вроде WEBrick, HTTParty и других в"ысокоуровневых" вещей.
Сразу оговорюсь, что не готов к дискусии и сравнению и выражаю собственное мнение, сложившееся после использования разных языков. Для всего этого можно использовать язык X, делайте, если Вам лично нравится, но наличие пула инструментов, которые сделаны на Ruby и работают, отрицать нельзя. Попробуйте.
>1. Работа с текстовыми файлами. Да, в 2018 это до сих пор нужно, раньше это делали через Perl, сейчас это делают либо на Python, либо на Ruby.Или всё ещё на Перле. Или awk\sed. Или js. Или <впиши свой Ёзыг> ...
Для рябчиков замедленных в развитии - нынче даже Fortran это делает. Ага - сам ржал, но оно в стандарте теперь.
Впрочем, вам хвастаться-то больше нечем, так что да - Работа с текстовыми файлами конёк рябы! :-)>2. Оркестрирование - Puppet, Chef, Vagrant, Foreman все они написаны на Ruby
И кроме чифа для оперов и вагранта для девок - нафиг никому ненужны!
Соль _не_ на рябе, Ансибл - вообще на Питоне - а он в РХ, а значит скоро у всех у нас.>3. Системные скрипты и обёртки, за счёт наличия удобных библиотек по IO, HTTP (HTTParty), GPGME, работы с процессами/тредами.
Это в 21 веке есть в любом языке! Только рябу со всеми потрохами надо самому ставить. А тот же питон - уже в системе. Так что - лесом.
>4. Прототипирование - быстрый наброс прототипа, который, например, потом будет написан на Go для большей портативности.
Перестань нюхать клей. Я серьёзно.
>5. Мокапы и временные заглушки - опять же, удобные вещи вроде WEBrick, HTTParty и других в"ысокоуровневых" вещей.
Ладно - уговорил! Рябе - _идеальный_ язык для затычек! Я правильно тебя понел? :-)
>но наличие пула инструментов, которые сделаны на Ruby и работают, отрицать нельзя. Попробуйте.
А чего ты думаешь народ злой такой на ваших?! Попробовали.
Специально для вас (Я ГАРАНТИРУЮ ЭТО!(С)ЛОР) - придумали и сделали Докер. Ибо программы на рябе _до_сих_пор_ работают только на машине программиста :-(
Да в целом, правильно. Руби хорош именно гибким синтаксисом и возможностью создавать на нём специализированные языки предметной области, которые, для не знающих Руби, будут казаться специально разработанными под них. Да и возможности создавать эти языки программирования (DSEL) на локальных языках - само по себе существенное преимущество именно Руби.class Numeric
def куб
self * self * self
end
endMath::PI.куб # => 31.006276680299816
3.куб # => 9
module Enumerable
def Σ
reduce(:+)
end
end
(1..5).Σ # => 15
> Перечислите, пожалуйста, задачи, которые хорошо решает RubyОн хорошо раннит Rails! Всио. :-)
Я не пользуюсь ruby, но иногда поглядываю. Некоторые библиотеки там отличные.
Начинающим программистам было бы неплохо посмотреть на mechanize, shoez или fxruby. Некоторым может понравиться. Особенно после джавки.
>Я не пользуюсь ruby, но иногда поглядываю.Какая редкость! :)
>Некоторые библиотеки там отличные.Да. Рельсы. Остальное - онищщще.
>Начинающим программистам было бы неплохо посмотреть на mechanize, shoez или fxruby.Начинающим программистам надо держаться от ребе как можно дальше. Как доктор говорю.
>Некоторым может понравиться. Особенно после джавки.Это может понравится только после Перла, да и то ...
>Да. Рельсы. Остальное - онищщще.Про рельсы как раз не могу сказать ничего. А про fxruby могу сказать пару тёплых слов. Маленький GUI с отполированными виджетами.Видел ещё с пяток вкусняшек.
>Начинающим программистам надо держаться от ребе как можно дальше. Как доктор говорю.Доктор, здесь не больничка и не поликлиника. И речь тут немного не про грипп или насморк. А всего лишь про яп.
Я писал на Ruby довольно долго перед тем как свалить в функциональщину. Очень даже помогает на практике отполировать основы. А дальше можно валить хоть в Lisp, хоть в Haskell. Ведь к этому моменту будет понимание функций высшего порядка, того что всё является выражением, да и иммутабельность довольно популярна в Ruby-сообществе.
Совершенно верно. Ruby позволяет новичкам увидеть современные средства программирования. Добавлю сюда ещё такие уже привычные всем итераторы, генераторы(enumerated classes) и замыкания.
Некоторые API довольно элегантны и лаконичны. Так что польза от него есть.
Но ограничения языка тоже нужно принимать в расчёт. Это я про многопоточность и производительность в первую очередь.
Для новичков Руби совсем не годится. В него имеет смысл идти после хотя бы базового понимания других императивных языков.В смысле, использовать его можно и новичками, но в форме DSL. А вот серьёзно влезать программировать, лучше уже имея опыт. И уж явно, не для школы этот язык.
К слову, проблемы производительности сейчас уже скорее от незнания, чем из-за языка.